不久:
#include <iostream>
float pi(){ return 3.14; }
#define PRINT(x) std::cout << #x << std::endl;
#define PI pi()
int main(int argc, char *argv[])
{
PRINT(PI)
PRINT(pi())
return 0;
}
结果:
PI
pi()
有没有办法在宏参数中只获取预处理数据?得到结果
pi()
pi()
编辑:
我没有注意到这个问题:C Preprocessor, Stringify the result of a macro 重复...
答案 0 :(得分:0)
添加另一个辅助宏:
#define QU(x) #x
#define PRINT(x) std::cout << QU(x) << std::endl;
#define PI pi()