我有一个结构:在C中,ARM编译器如何优化这个结构?
typedef struct mystruct_s {
uint8_t bufferA[1024];
uint8_t bufferB[1024];
} mystruct;
mystruct mystructA;
mystruct mystructB;
for(i = 0 ; i < 1024 ; i++)
{
mystructA.bufferA[i] = 0x01;
mystructA.bufferB[i] = 0x01;
mystructB.bufferA[i] = 0x01;
}
在我的节目,我曾访问过的mystructA两个缓冲成员,但只有在缓冲液A mystructB。
如果未访问mystructB中的成员bufferB,编译器会优化它以节省内存吗?
我知道由于不同编译器的性质,这可能看起来不明确。
例如,如果我在Keil下使用ARM C/C++编译器为STM32F4,它会做什么?
通过优化构建它,查看生成的代码,您将看到编译器实际执行的操作。 –