美文网首页
关于宏的小知识

关于宏的小知识

作者: kentchen91 | 来源:发表于2016-05-06 17:03 被阅读61次

# 的意思是紧跟着它的后面的标识符添加一个双引号""

@#的使用, 我们添加一个普通的宏:加@#是怎么使用的:

//随便写一个宏

#define LRToast(str) [NSString stringWithFormat:@"%@",@#str]

//这个宏需要这样写LRToast(温馨提示);//正常运行, 打印不会报错NSLog(@"%@",LRToast(温馨提示));

关于宏定义中的#

1.在一个参数前加一个#,预处理时将会变成这个参数名的字符串常量,即字符串化(stringify)例如:

#define GET_NAME(X) #X

int a = 0;

NSLog(@"%s",GET_NAME(a));      //output: "a"

NSLog(@"%s",GET_NAME(a+3));    //output: "a+3"

2.

#在宏定义中的另一个作用就是用于命名的串联,用##就可以串联它左右两边的命名,比如以下代码:

#define CONCAT(X, Y) X ## Y

NSString *helloworld = @"Hello, world!";

NSLog(@"%@",CONCAT(hello, world)); //output: "Hello, world"

3.

可选可变参数

##在宏定义中可以放在__VA_ARGS__之前表示可变参数可以为空,否则的话可变参数至少为一个了。

#define MYLOG(format, ...) NSLog(format, ##__VA_ARGS__)

MYLOG(@"Don't make an error!");

上面代码中MLOG中只有一个参数,如果不加##,则MLOG至少需要两个参数,在Xcode里将会出现编译错误。

相关文章

  • 关于宏的小知识

    # 的意思是紧跟着它的后面的标识符添加一个双引号"" @#的使用, 我们添加一个普通的宏:加@#是怎么使用的: /...

  • C++宏定义(掐小知识点)

    1.宏的各种符号 1.1关于宏参数里#的知识 在了解这个小知识点之前,我们先来看看下面这道题 #define FU...

  • 造就一点小知识

    我想要读点小知识,那种课本上不讲,老师认为是常识而你却不懂的小知识。 有太多这样的小知识了,关于电力方面的,关于控...

  • 关于西装的小知识

    这周在读谢丽尔·桑德伯格《向前一步》,也同时阅读一本关于优雅穿衣的电子书。读到其中关于西装的章节,不禁想起电影《寒...

  • 关于芭蕾的小知识

    芭蕾上课注意事项 一. 盘 发 芭蕾舞是一门优雅细致又严谨的舞蹈艺术,芭蕾的审美要求芭蕾舞者必须盘着头发,给观众一...

  • 关于毛笔的小知识

    “工欲善其事,必先利其噐”,想练好毛笔字,学会选择一支合格的毛笔,是学好书法的基本前提。 一: 选 ...

  • 关于白酒的小知识

    今天小编就和各位酒友聊聊,在日常生活中,白酒有哪些不为人知的事呢,一起来看看吧。 如何区别原浆酒和勾兑酒? ...

  • 关于HTML的小知识

    1.W3C 简介 万维网联盟(W3C)由蒂姆·伯纳斯-李于1994年10月离开欧洲核子研究中心(CERN)后成立,...

  • 关于护肤的小知识

    作为一个女汉子基本没有关注过护肤化妆领域,但随着年纪的增长,也愈发觉得在这个看颜值的世界还是需要关注下个人的形象问...

  • 关于相机的小知识

    21世纪,高科技围绕着我们的生活,照明的电灯,无处不在的网络,浓缩成精华的手机。还有记录下美好瞬间的相机。 其实在...

网友评论

      本文标题:关于宏的小知识

      本文链接:https://www.haomeiwen.com/subject/sdejrttx.html