星期日, 四月 29, 2007

关于constant folding

constant folding 常量折叠,是一种编译优化技术,就是在某些时候编译器会根据当时的具体情况,不给常量分配存储空间,而是直接像宏替换一样,把常量值代入代码中。
这里需要注意的是:和inline关键字一样,不是所有的常量都会被编译期采用这种优化方式。
比如
const int a=fun();
--------------------
const int a=4;
const int* pa=&a;
这两种情况编译器不会采用优化策略。

由此:在程序设计中,最好不要修改const常量的值,虽然你可以通过某些方式修改它。否则,程序行为未定义。

没有评论: