美文网首页
c++编译器常量优化

c++编译器常量优化

作者: spyder_men | 来源:发表于2018-12-14 22:15 被阅读0次
int main()
{
    int const a = 10;
    int const * p = &a;
    int *q =const_cast<int *> (p);
    *q = 20;
    cout << *q << "\n" << *p << "\n" << a<<endl;
    system("pause");
}

结果

image.png
分析:变量a为啥是10?
因为编译器在编译时会对常量做优化,并不是真的到内存中去取值
解决办法:
加关键字volatile
int volatile const  a = 10;

相关文章

  • c++编译器常量优化

    结果

  • 编译优化算法

    参考资料: 1 编译器常用优化方法 常量传播 将能够计算出结果的变量直接替换为常量 优化后 常量折叠 多个变量计算...

  • 002-const关键字

    C++编译器对const常量的处理 当碰见常量声明时,在符号表中放入常量 ==>问题:那有如何解释取地址 编译过程...

  • 编译器常用优化方法

    常量传播在编译优化时, 能够将计算出结果的变量直接替换为常量。 编译器在进行编译的时候,将a直接由1替换。因此优化...

  • 刷题No4 const与#define的区别

    C++语言可使用const定义常量,也可以用#define定义常量,但前者比后者有更多的优点:(1) 编译器处理方...

  • 破解/优化C++代码:常量合并

    这篇文章讲的是常量合并,这是VC++编译器最简单的优化之一。 这种优化,是指编译器在编译时(编译期间)直接计算出表...

  • 优化C++代码(2):常量合并

    这篇文章讲的是常量合并,这是VC++编译器最简单的优化之一。 这种优化,是指编译器在编译时(编译期间)直接计算出表...

  • 编译器的两点优化

    1.编译器的常量优化 在给变量进行赋值的时候,如果右侧的表达式当中全部是常量,没有任何变量, 例如:short...

  • java编译器常量优化机制

    请看两种代码 一、 byte a1=1,a2=2,a3,a4; a3=a1+a2; a4=1+2; 这段代码有没有...

  • LLVM & 启动优化(二进制重排)

    what is LLVM: LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程...

网友评论

      本文标题:c++编译器常量优化

      本文链接:https://www.haomeiwen.com/subject/mysnhqtx.html