Coo*_*coa 2 cocoa cocoa-touch objective-c stringification c-preprocessor
我正在看一些开源项目,我看到以下内容:
NSLog(@"%s w=%f, h=%f", #size, size.width, size.height)
Run Code Online (Sandbox Code Playgroud)
在尺寸符号之前,'#'究竟是什么意思?这是C字符串的某种前缀吗?
为了详细说明dirkgently的答案,这看起来像是一个带有NSSize(或类似)参数的宏的实现,并打印变量的名称(这正是#正在做的;将变量的名称转换为包含的字符串变量的名称)然后是它的值.所以在:
NSSize fooSize = NSMakeSize(2, 3);
MACRO_NAME_HERE(fooSize);
Run Code Online (Sandbox Code Playgroud)
宏将扩展到:
NSLog(@"%s w=%f h=%f", "fooSize", fooSize.width, fooSize.height);
Run Code Online (Sandbox Code Playgroud)
并打印:
fooSize w=2.0 h=3.0
Run Code Online (Sandbox Code Playgroud)
(类似于NSStringFromSize,但带有变量名)
| 归档时间: |
|
| 查看次数: |
1204 次 |
| 最近记录: |