读书人

类似下面的代码如果开了编译优化会不

发布时间: 2012-04-26 14:01:31 作者: rapoo

类似下面的代码如果开了编译优化,会不会被忽视掉,谢谢,最好说明点理由
for(i= 0; i< 0xF; i++)//此时有任务切换,延迟一段时间
{ }

[解决办法]
自己用编译器试试就知道了。
[解决办法]
会优化,这个延迟不会生成任何汇编代码,此后引用到的i将会直接被0xF常数所代替。

这个是编译器最基础的优化功能。要详细理由的话,翻编译原理。
[解决办法]
正常的编译器应该都会忽视掉吧。
具体你可以验证编译后生成的汇编文件,

只有理由嘛
像这种都最终的计算结果没有任何影响的src没有理由不去掉啊。


[解决办法]
volatile int i;
[解决办法]

C/C++ code
       #include <unistd.h>       unsigned int sleep(unsigned int seconds); 

读书人网 >C语言

热点推荐