在编程中,__COUNTER__
预处理器宏是一个特殊的宏,它在编译时为每个翻译单元生成一个唯一的整数值。这个宏常用于生成唯一的标识符,例如在编译时为变量、函数或类模板生成唯一名称。
在C++中,__COUNTER__
宏是从0开始递增的,并且在一个编译单元中是独立的。这意味着,如果在多个源文件中使用__COUNTER__
,每个源文件中的计数都是独立的。
例如,在一个项目中,你可以使用__COUNTER__
生成唯一的标识符:
#include<iostream>
#define UNIQUE_NAME(prefix) prefix ## __COUNTER__
int main() {
int UNIQUE_NAME(test_var) = 42;
std::cout << "test_var value: "<< test_var<< std::endl;
return 0;
}
在这个例子中,__COUNTER__
宏将为test_var
生成一个唯一的名称,例如test_var0
。
需要注意的是,__COUNTER__
宏是非标准的,并且在某些编译器中可能不被支持。在使用__COUNTER__
之前,请确保你的编译器支持这个宏。
领取专属 10元无门槛券
手把手带您无忧上云