我试过这个,但它不起作用:
#include <iostream>
#define CAT(A,B) A##B
#define MY_MACRO CAT(__COUNTER__,__LINE__)
int main(){
std::cout<<MY_MACRO<<std::endl;
std::cin.get();
return 0;
}
它会生成此错误 在函数int main()中 错误 COUNTER ____ LINE 未在此范围内声明
这也没有帮助:
#include <iostream>
#define F1(x,y) x##y
#define F2(x,y) F1(x,y)
#define MY_MACRO F2(COUNTER,LINE)
int main()
{
std::cout<<MY_MACRO<<std::endl;
std::cin.get(); return 0;
}
它不会连接它只返回LINE宏值,如果你在代码中用一个整数替换它,它将返回那个只与COUNTER没有连接的整数,所以这个问题不是重新连接重复