【发布时间】:2015-08-03 07:22:38
【问题描述】:
如果我们在两个不同的源文件中使用__COUNTER__,该值将重置为零。是否可以将__COUNTER__ 范围设为全局?
文件:file1.c
int x=__COUNTER__;
int y=__COUNTER__;
文件:file2.c
int a=__COUNTER__;
int b=__COUNTER__;
我希望所有 x、y、a 和 b 都具有唯一的初始化值。 在这种情况下,x=a,y=b。
我还尝试将__COUNTER__ 放在一个通用头文件中。结果是一样的。
文件:common.h
#define VALUE __COUNTER__
将上述文件中的所有 __COUNTER__ 替换为 VALUE。
【问题讨论】:
-
不,这是不可能的,因为
__COUNTER__在预处理期间工作并且不知道其他源文件。你需要有点聪明才能达到预期的效果。 -
@SedatKapanoglu 不。这个问题是关于具有不同工具链的不同语言。不适用。
-
@FUZxxl 撤回,谢谢!
-
全球在哪里?在你的电脑?在你的网络上?在整个 C 程序世界中?
标签: c gnu c-preprocessor