C++_COUNTER__定义

6mzjoqzu  于 2023-05-08  发布在  其他
关注(0)|答案(2)|浏览(313)

我的计算机上安装了两个版本的C++编译器。其中一个可以识别__COUNTER__宏,另一个不能。
在做了一些研究以使程序在这两种环境下都能编译之后,我还没有遇到__COUNTER__的宏定义。这是由编译器完成的特殊宏,还是我可以将__COUNTER__的定义复制到源代码中?如果我可以复制它,我需要什么代码?

sxissh06

sxissh061#

__COUNTER__是一个内置在几个常见编译器中的。无法手动定义。如果你被一个不支持它的编译器卡住了,你最好的选择可能是在将代码送入编译器之前,通过一个支持它的预处理器运行你的代码。

wz3gfoph

wz3gfoph2#

这是一个特殊的宏,它是由Visual Studio引入的,我想现在GCC也支持它。
它基本上提供了一个唯一的整数计数器,可用于生成唯一的标识符。
GCC release notes
添加了一个新的预定义宏__COUNTER__。它扩展为从0开始的连续整数值。与##运算符结合使用,这提供了一种生成唯一标识符的方便方法。
如果编译器无法使用它,那么可以很容易地用静态变量来模拟它的行为。但是我不确定你在编译什么,所以我不确定这个计数器在你现有的代码中是如何使用的。

相关问题