gpt4 book ai didi

c - 自动递增宏扩展

转载 作者:行者123 更新时间:2023-12-02 08:49:05 25 4
gpt4 key购买 nike

使用普通的 C 预处理器宏,是否可以创建如下内容:

INIT_BASE(0x100)                     // init starting number

#define BASE_A GET_NEXT_BASE // equivalent to #define BASE_A 0x101
#define BASE_B GET_NEXT_BASE // 0x102
#define BASE_C GET_NEXT_BASE // 0x103

最佳答案

宏不能自动执行这种类型的计数,但 enum 可以。

#define INIT_BASE 0x100
enum foo
{
BASE_A = INIT_BASE + 1,
BASE_B,
BASE_C,
...
};

除非您真的想使用宏,否则您将不得不手动进行计数:

#define INIT_BASE  0x100
#define BASE_A (INIT_BASE + 1) // equivalent to #define BASE_A 0x101
#define BASE_B (INIT_BASE + 2) // 0x102
#define BASE_C (INIT_BASE + 3) // 0x103

关于c - 自动递增宏扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9979405/

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