iOS 宏定义中的#

一个 # 号

  • 表示加双引号
#define kToString(x) #x
kToString(123) 等价于 "123"

显然,这个一个C字符串。 要想变成OC的字符串,还需要改进一下:

#define kToString(x) @""#x
or
#define kToString(x) @#x

两个 ## 号

  • 表示连接
#define kConnect(x,y) x##y
kConnect(123,456) 等价于 123456

x与 ## 以及 y之间可以有空格,会自动过滤

等同于 #define kConnect(x,y) x   ##    y

还有 #@

  • 表示加单引号
#define kToChar(x) #@x
当这样定义的时候

系统抛出了一个红色警告⚠️

'#' is not followed by a macro parameter
Use of undeclared identifier 'x'

参考

https://www.jianshu.com/p/3995c4b3b2c4

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容