我的计算机上安装了两个版本的c ++编译器。其中一个识别__COUNTER__
宏,另一个不识别。在做了一些研究以使程序在两者中编译后,我还没有遇到__COUNTER__
的宏定义。这是编译器完成的一些特殊的宏,还是可以将__COUNTER__
的定义复制到我的源代码中,如果我可以复制它我需要的代码是什么。
答案 0 :(得分:10)
__COUNTER__
是几个常见编译器的内置函数。无法手动定义。如果您坚持使用不支持它的编译器,那么最好的选择可能是通过支持它的预处理器运行代码,然后再将其提供给编译器。
答案 1 :(得分:0)
这是一个由Visual Studio引入的特殊宏,我认为它现在也得到了GCC的支持。
它基本上提供了一个唯一的计数器,而不是整数,可用于生成唯一标识符。
添加了新的预定义宏
__COUNTER__
。它扩展为从0开始的顺序积分值。结合##
运算符,这提供了生成唯一标识符的便捷方法。
如果编译器没有它,您可以使用静态变量轻松模仿行为。但我不确定你在编译什么,所以我不确定这个计数器是如何在你可用的代码中使用的。