研究生
最后登录1970-1-1
在线时间 小时
注册时间2016-7-27
|
发表于 2017-5-3 00:51:06
|
显示全部楼层
你的LC是宏,IDE在的预处理过程中就对所有的宏进行替换,于是,你最下面的代码就变成了:
abc = (A){1,2,3};
这样就不对了,懂不懂。大括号()做强制类型转换时其右边必须是某种类型(包括基本数据类型和自定义结构体类型),那么你说{1,2,3}这是个什么类型。
再说为什么上面行,有两种情况。一、在定义结构体变量abc时候默认为赋初值(我也不确定正确)二、编译器检测到不和逻辑或者是语法错后只显示了下面的语句错误而没有显示到上面(这是IDE的原因),于是让你误认为上面的行,下面的不行。
分析到这吧。建议你使用规范的C语言编程风格。
祝你进步!!
|
|