【发布时间】:2013-07-25 12:11:19
【问题描述】:
我正在尝试编写一个宏,它将每个源文件仅扩展一次 __COUNTER__ 宏。我完全理解宏如何与它们的扩展一起工作,但我在这个方面遇到了困难。我想在文件顶部展开一次 __COUNTER__ 宏,然后对该定义的每个引用都不会将 __COUNTER__ 展开到下一个数字。
所以我想将__COUNTER__ 完全扩展为一个值,然后在当前工作源文件中始终使用该值。
我只能使用 C 可用的功能。
【问题讨论】:
-
模板元编程,您可以在...编译时“生成”运行代码的 ID。
-
我仅限于使用 C,所以这个解决方案必须在预处理器上
-
该值是否需要在编译时可用?还是可以等到运行时?
-
必须是编译时间。
标签: c xcode4 llvm c-preprocessor