#define E1number 16;
typedef unsigned char uchar;// 无符号8位整型变量
typedef struct
{
char Prompt[24];
char Sys[24];
char ID[24];
uchar E1number;
}gSysInfo_t;
extern gSysInfo_t gSysInfo;
如果加上最上面你的那一句就会报错,这是为什么? 已经被define宏定义过的字符串 不能被 结构体使用为变量了??
结构体和 #define
答案:4 悬赏:50 手机版
解决时间 2021-02-16 04:21
- 提问者网友:嗝是迷路的屁
- 2021-02-15 12:43
最佳答案
- 五星知识达人网友:玩家
- 2021-02-15 13:59
#define E1number 16;
分号在C语言中表示一个语句的结束,一个分号对应一个语句。
而#define 只是预处理时做简单的替换,这里用分号就表示执行了#define这条语句,而这条语句明显不是定义E1number,所以肯定在uchar E1number;这里报错。你去掉uchar E1number;,肯定是没有错误的。
分号在C语言中表示一个语句的结束,一个分号对应一个语句。
而#define 只是预处理时做简单的替换,这里用分号就表示执行了#define这条语句,而这条语句明显不是定义E1number,所以肯定在uchar E1number;这里报错。你去掉uchar E1number;,肯定是没有错误的。
全部回答
- 1楼网友:怀裏藏嬌
- 2021-02-15 16:28
#define后面没有分号
- 2楼网友:低血压的长颈鹿
- 2021-02-15 15:25
有时候#define 放在语句附近是为了便于理解
提高可读性
看这段代码,#define放在前面也是没有任何问题的。
- 3楼网友:逃夭
- 2021-02-15 15:18
#define是宏定义,后面不能加分号
#define E1number 16
这样写就对了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯