- 此问题在此处已有答案**:
Creating C macro with ## and LINE (token concatenation with positioning macro)(3个答案)
3天前关闭。
不能处理宏中的字符串。我的编译器不能提取宏的值或##之后的其他内容
#define ProfilerScope(name) Timer timer ## __LINE__;
它只返回Timer timer__LINE__
我试着做一个字符串宏来使这个工作,但没有什么,他们只是返回我相同的
#define STRINGIZE(x) STRINGIZE_SIMPLE(x)
#define STRINGIZE_SIMPLE(x) #x
#define ProfilerScope(name) Timer timer ## STRINGIZE(__LINE__);
返回Timer timerSTRINGIZE(__LINE__)
我希望它返回使用宏的代码行
1条答案
按热度按时间gojuced71#
我希望它返回使用宏的代码行
我认为你想扩展
__LINE__
,然后用一个单词连接它。你必须在一个宏中扩展它。下面的代码:输出
Timer timer4;
。