none
C程序某一行被编译器优化掉了 RRS feed

  • 问题

  • C程序有的语句经过编译器编译后就被优化掉了,譬如我写个软件延时,用如下经典方法

    int ture=100;
    while(ture--)
    {
    nop();
    nop();
    }

    编译之后把nop给优化没了。常用的解决方法有两种:

    1、调低编译器的优化级别
    2、被优化的一般是nop语句,用别的语句代替,譬如定义一个不用的变量。

    但以上方法有局限性,有没有方法在程序不想被优化的那一行加个标志告诉编译器不要动这句?

    2012年4月10日 10:30

全部回复