定义一个identfier并在struct中使用它

时间:2014-03-07 23:54:13

标签: c

是否可以定义一个和标识符,然后在结构中使用它?

e.g。

#define APPLE   1

typedef struct
{
 UINT32 banana;
 APPLE; 
}Fruits

我想确保我没有违反某些规则。

谢谢

2 个答案:

答案 0 :(得分:1)

您可以将#define视为复制/粘贴预处理器命令。所以,一般来说,如果我理解这个问题,答案是肯定的。但在你的例子中,它最终会像:

typedef struct
{
 UINT32 banana;
 1; 
}Fruits

答案 1 :(得分:0)

#define告诉预处理器将一段文本替换为另一段文本。无论你在哪里写APPLE,copmpiler都会认为你写了1

所以,你的例子相当于:

typedef struct
{
 UINT32 banana;
 1; 
}Fruits

...这是无效的语法,因为1;不是结构中的有效字段声明。 (最后你错过了一个分号。)