gpt4 book ai didi

C/C++ 宏求值顺序

转载 作者:行者123 更新时间:2023-11-30 18:04:41 29 4
gpt4 key购买 nike

Possible Duplicate:
C Preprocessor, Stringify the result of a macro

简短地说:

#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重复...

最佳答案

添加另一个辅助宏:

#define QU(x) #x
#define PRINT(x) std::cout << QU(x) << std::endl;
#define PI pi()

关于C/C++ 宏求值顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465019/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com