您好,
我使用Diab 5.8.0作为我的C源代码的编译器。 我已经认识到如果我有这样的程序:
typedef struct
{
int field_1;
int field_2;
int field_3;
} Struct_Type;
int main()
{
Struct_Type temp_st = {1,1,1};
return temp_st.field_1;
}
似乎转换为此(返回值为0而不是1)
typedef struct
{
int field_1;
int field_2;
int field_3;
} Struct_Type;
int main()
{
Struct_Type temp_st;
return temp_st.field_1;
}
阵列初始化存在同样的问题,
此:
int main()
{
int array[3]={1,1,1};
return array[0];
}
转换为:
int main()
{
int array[3];
return array[0];
}
我认为问题来自Diab Compiler的优化,因此我在编译代码时不使用任何optimize-flag,但问题仍然存在。
如果你知道这个和解决方案的根本原因,如果我想在声明中初始化struct和array的值,你能帮助我吗?