永发信息网

结构体和 #define

答案:4  悬赏:50  手机版
解决时间 2021-02-16 04:21
  • 提问者网友:嗝是迷路的屁
  • 2021-02-15 12:43
#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宏定义过的字符串 不能被 结构体使用为变量了??
最佳答案
  • 五星知识达人网友:玩家
  • 2021-02-15 13:59
#define E1number 16;

分号在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 这样写就对了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯