如何在 C 中用单个赋值定义多个#define
How do I define multiple #define with single assign value in C
我发现了一些关于 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*/
在 C 标准中,预处理器语句以换行结束,因此您必须这样做:
#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
语句可以处理多行,在行尾使用 '\'
,接下来没有任何其他字符,因此您可以创建精美的 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
必须在文件中使用之前,否则无法编译。
我发现了一些关于 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*/
在 C 标准中,预处理器语句以换行结束,因此您必须这样做:
#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
语句可以处理多行,在行尾使用 '\'
,接下来没有任何其他字符,因此您可以创建精美的 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
必须在文件中使用之前,否则无法编译。