Viv*_*pta 4 c volatile compiler-optimization
如果关闭编译器优化即(gcc -o0 ....),那么'volatile'关键字没有区别可以吗?
我已经制作了一些示例'C'程序,并且只有在打开编译器优化即((gcc -o1 ....)时才能看到生成的汇编代码中volatile和non-volatile之间的区别.
NPE*_*NPE 10
不,没有理由做出这样的陈述.
volatile具有标准中规定的特定语义.你断言gcc -O0总是生成代码,使得每个变量 - volatile或者不 - 符合那些语义.这不保证; 即使特定程序和特定版本的情况恰好如此gcc,例如,当您升级编译器时,它也可能会发生变化.