为何GCC编译器未完全优化掉全局变量foo?
为何GCC编译器未完全优化掉变量foo?
原因如下:
- GCC可推断程序会陷入无限循环永不返回,因此该变量后续不会被其他翻译单元使用;
- 该变量未被
volatile限定,意味着访问它不会改变可观察行为。
示例代码:
int foo; int main(void) { foo = 10; while(1) { // Infinite loop never returns } }
内容的提问来源于stack exchange,提问作者user1806687
相关产品推荐
相关产品推荐

