当前位置:  开发笔记 > IOS > 正文

Mac OSX/iPhone上的C预处理器,使用'#'键?

如何解决《MacOSX/iPhone上的C预处理器,使用'#'键?》经验,为你挑选了1个好方法。

我正在看一些开源项目,我看到以下内容:

NSLog(@"%s w=%f, h=%f", #size, size.width, size.height)

在尺寸符号之前,'#'究竟是什么意思?这是C字符串的某种前缀吗?



1> smorgan..:

为了详细说明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,但带有变量名)

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有