gpt4 book ai didi

C定义宏,第一次使用时扩展不一样

转载 作者:太空宇宙 更新时间:2023-11-03 23:37:04 25 4
gpt4 key购买 nike

是否可以这样写:

#define FIRST_DEF 1
#define SECOND_DEF 2

#ifndef ALREADY_DEFINED
#define MY_MACRO FIRST_DEF
#define ALREADY_DEFINED
#else
#define MY_MACRO SECOND_DEF
#endif

所以 MY_MACRO 在第一次使用时不具有相同的值?

这样写:

int a = MY_MACRO;
int b = MY_MACRO;

扩展为:

int a = 1;
int b = 2;

如果不行,有什么办法吗?(我知道这个例子很傻,但这只是为了让问题更清楚。)

最佳答案

对于您的示例,您可以使用预定义的宏 __COUNTER__,它会在每次使用时递增。请注意,它是一个非标准的编译器扩展,但 GCC 和 MSVC 都支持它。

关于C定义宏,第一次使用时扩展不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57706150/

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