初级会员

- 积分
- 65
- 金钱
- 65
- 注册时间
- 2016-11-7
- 在线时间
- 10 小时
|
如题,今天在keil上写一个小程序,定义了一个结构体来记录数据,没有在定义的地方赋初值,然后在需要的地方把这几个值赋给结构体,做了一个强制类型转换。结构我再程序里面做了一个类似下面test = (datatype){ 1,2,'c' };的操作,keil提示不能进行转换。
于是我在vs2015下测试了一下,结果没有问题,也没有警告。
#include "stdio.h"
typedef struct {
int a;
int b;
char c;
}datatype;
int main()
{
datatype test;
test = (datatype){ 1,2,'c' };
printf("%d %d %c", test.a, test.b, test.c);
return 0;
}
于是我就怀疑是不是IDE支持而C99或者ASCI不支持呢,接着我就打开了UBUNTU虚拟机,把这段代码在vi里面敲下来,gcc编译打开所有警告,并且分别用C99和ASIC标准编译,结果都没有问题。
大家说一说,这是什么问题,是因为KEIL不完全符合标准吗?
|
|