我有一個結構:在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,它會做什麼?
通過優化構建它,查看生成的代碼,您將看到編譯器實際執行的操作。 –