“未定义”的求值顺序问题

原创 2011年01月21日 22:01:00

printf 貌似是从右向左执行的。

但其实换一种编译器可能就产生不同结果。或者去掉 ++ 也会有意想不到的结果。

 

编程原则: 不要把 ++, -- 和其它 表达式混合写在一行, 否则会有无穷多的类似问题!

 

这是一个“未定义”的求值顺序问题,C99标准里专门有一条讲的这个问题。即 C++ 并没规定函数参数求值顺序

还可以参考cert的C++安全编程规范第10条:https://www.securecoding.cert.org/confluence/display/seccode/EXP10-C.+Do+not+depend+on+the+order+of+evaluation+of+subexpressions+or+the+order+in+which+side+effects+take+place

 

所以不要这样用...

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C/C++求值顺序不定问题

最近看C语言的书,书上曰: 对于 main() { int i=8; printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--); } 如按照从右...

'AjaxPro'未定义错误的原因&javascript顺序执行&AjaxPro机制

转载: 呵呵,终于明白'AjaxPro'未定义错误的原因了!!        先从javascript的执行方式说起吧!我用C#比较熟,在C#里面任何一个变量或函数的位置是无关紧要的,比如说下面pub...

「C++ Primer」3.22 迭代器未定义操作导致段错误问题

/* Revise the loop that printed the first paragraph in text * to instead change the elements in text...

编程中的“未定义行为”问题

在计算机程序设计中,未定义行为(undefined behavior)是指行为不可预测的计算机代码。(尤其是在c语言中中) 因为简化标准,所以标准规定某些操作是未定义的,意味着:程序员不能够预测会发...

gcc编译时对’xxxx’未定义的引用问题

在使用gcc编译的时候有时候会碰到这样的问题,编译为.o(obj) 文件没有问题,但是编译(这一步应该是链接)为可执行文件的时候会出现找不到’xxx’的定义的情况。 例如: g++ -o spider...

php 中的重载技术——解决调用对象(或类)的未定义的属性或方法出错问题

重载的基本概念: 重载在通常的“面向对象的语言”中的含义:是指在一个类(或对象)中,有多个名字相同但是形参不同的方法的现象; 如:class A{ function f1(){} functi...

解决IE6,7,8JSON.stringify JSON 未定义问题

1、解决IE6 IE7,IE8 JSON.stringify JSON 未定义问题 调用的页面里引用json2.js即可解决问题(推荐方法)。 即: json2....

Arcgis javascript api离线地图开发环境搭建- dojo未定义- flex安全沙箱问题

前提:部署ArcGis server地图,已完成地图发布,并能在ArcGIS Services Directory中查看到地图服务资源。      在访问或者查看地图时候会遇到很多意外或者现...
  • grayjo
  • grayjo
  • 2012-10-23 11:23
  • 3831

ASPxClientGridView未定义--问题解决

上次刚把Server Error in '/' Application这个问题结局了。可新的问题又来了,郁闷,不就是个郁闷。上次的问题是因为bin目录没有放在服务器的根目录。这次,我用的Dev控件根本...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)