我用两个简单的结构体来表示下这个问题。typedef struct _inner_ {
int c;
int d;
}inner;
typedef struct _external_ {
int a;
inner what;
}external;
//然后初始化
inner strb = { 12, 34};
external stra = {1,{ 12, 34}}; //这样子编译不报错 ①
//external stra = {1,strb};//这样子报错 error C215: illegal type conversion ②
我使用gcc这样实验的时候可以使用第二种方案。请问一下是不是Keil C不支持这种方式呢? ANSI标准应该来说是可以使用同样类型的结构体名直接给对应的结构体赋值的呀。
|