c - 如何在 C 中使用单个赋值来定义多个 #define

标签 c c-preprocessor

我发现了一些关于 How do I #define multiple values C / C++ 的相关问题。但这不是我想要的。相反,我想做相反的事情。

我们可以简单地分配这样的东西

int a,b,c,d,e;
a = b = c = d = e = 5;
printf("Value %d",e);

但是我正在寻找的是如何将下面的定义组合到一行中,并给定要分配的固定值。

#define SIZE_OF_NODE_ADD   4
#define SIZE_OF_KEY_ADD    4
#define SIZE_OF_ID_ADD     4
#define SIZE_OF_PW_ADD     4

可以这样做吗?类似的东西

#define SIZE_OF_NODE_ADD = SIZE_OF_KEY_ADD = SIZE_OF_ID_ADD = SIZE_OF_PW_ADD = 4
/* The syntax is wrong, I just emphasize for easier understanding what I am looking for*/  

最佳答案

好吧,#define 语句可以在行末尾使用 '\' 处理多行,后面没有任何其他字符,因此您可以创建奇特的 MACROS ( Multi-line DEFINE directives? )。但是解决您的问题的一个简单方法可能是使用引用定义,因此您只需更改该定义即可更改其他值。

#define REFERENCE_VALUE 4

#define SIZE_OF_NODE_ADD   REFERENCE_VALUE
#define SIZE_OF_KEY_ADD    REFERENCE_VALUE
#define SIZE_OF_ID_ADD     REFERENCE_VALUE
#define SIZE_OF_PW_ADD     REFERENCE_VALUE

请记住,REFERENCE_VALUE 必须位于文件中使用之前,否则无法编译。

关于c - 如何在 C 中使用单个赋值来定义多个 #define,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62421391/

相关文章:

使用用户输入控制 POSIX 线程

c++ - C int 到 char 转换添加了垃圾字符

c++ - -D 选项从 g++ 命令行被错误地扩展

c++ - 这个无括号的 C 预处理器定义安全吗?

c++ - 枚举错误 : expected identifier before numeric constant

C(嵌入式): Giving source file unique ID's

c - 在 C 中合并数组中的位变量

c - 已声明但从未定义的不透明结构

c - memcpy 混淆了结构的内容?

c - 对我来说新的预处理器技巧