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