相关疑难解决方法(0)

有没有人曾经使用__COUNTER__预处理器宏?

__COUNTER__符号由VC++和GCC提供,并在每次使用时提供增加的非负积分值.

我有兴趣了解是否有人曾经使用它,以及它是否值得标准化?

c c++

46
推荐指数
5
解决办法
3万
查看次数

Visual C++中的预处理器工具__COUNTER__

我需要在编译时在代码中生成一系列序列号.我用这样的方式尝试了"__COUNTER__":

void test1()
{
  printf("test1(): Counter = %d\n", __COUNTER__);
}
void test2()
{
  printf("test2(): Counter = %d\n", __COUNTER__);
}
int main()
{
  test1();
  test2();
}
Run Code Online (Sandbox Code Playgroud)

结果如我所料完美:

test1(): Counter = 0
test2(): Counter = 1
Run Code Online (Sandbox Code Playgroud)

然后我在不同的.cpp文件中传播"__COUNTER__":

In Foo.cpp:
Foo::Foo()
{
  printf("Foo::Foo() with counter = %d\n", __COUNTER__);
}
In Bar.cpp:
Bar::Bar()
{
  printf("Bar::Bar() with counter = %d\n", __COUNTER__);
}

In Main.cpp:
int main()
{
  Foo foo;
  Bar bar;
}
Run Code Online (Sandbox Code Playgroud)

结果是:

Foo::Foo() with counter = 0
Bar::Bar() with counter = 0
Run Code Online (Sandbox Code Playgroud)

在我看来,"__ COUNTER__"作为 …

c++ counter visual-studio c-preprocessor

7
推荐指数
1
解决办法
1931
查看次数

将__COUNTER__宏重置为零

是否可以__COUNTER__在头文件的开头重置宏,以使其在头文件中的评估在几个编译单元上保持一致?

c++

3
推荐指数
3
解决办法
2262
查看次数

标签 统计

c++ ×3

c ×1

c-preprocessor ×1

counter ×1

visual-studio ×1