例如,我们有两个结构:
struct type1 {
int t;
char c;
};
struct type2 {
char c;
int t;
};
Run Code Online (Sandbox Code Playgroud)
C编译器在哪个阶段可以忽略顺序的差异并将它们解析为同一个结构?如何?
C编译器在哪个阶段可以忽略顺序的差异并将它们解析为同一个结构?如何?
编译器不会忽略声明struct成员的顺序.实际上,结构保证了成员以与它们声明的顺序相同的顺序布置在存储器中,尽管在结构对齐需要时插入了填充位.因此,编译器将始终把struct type1与struct type2不同类型.