编写高质量代码-改善C++程序的150个建议-3
来源:互联网 发布:php动态网页设计入门 编辑:程序博客网 时间:2024/05/29 06:38
最近从图书馆借了《编写高质量代码-改善C++程序的150个建议》这本书。感觉不错,将内容摘录出来,纪录自己学习点滴。也喜欢与大家共同分享。
另外,我也找到了高清pdf。 已上传到我的资源里了。
下面是下载链接。点我进入下载页面。
欢迎各位读后分享自己的学习经验。
建议2:避免那些由运算符引发的混乱
一般,C++被认为是C的超集。C++确实从它的前辈C那里继承了很多东西,比如一套含义相当混乱模糊的运算符。由于C/C++语法规则的灵活性,以致那些粗心的程序员常会使用错误的运算符,进而引发不必要的麻烦。下面的代码就是一个典型的例子:
if(nValue = 0) { // do something if nValue is not zero. }
显然,程序员的本意是要写if( nValue == 0 )。不幸的是,上述语句虽未达成程序员的本意,但它却完全是合法的,编译器不会给出任何错误提示。C++语句首先会将nValue赋值为0,然后再判断nValue是否为非零。结果就是if条件始终不能被满足,大括号中的代码永远不会被执行。
针对=和==之间的问题,通过良好的代码习惯可以避免,代码如下所示:
if(0 == nValue) { // do something if nValue is not zero. }
换句话说,就是将0和nValue的位置交换。此时,如果你再写出if( 0 = nValue)这样的代码,编译器会直截了当地提示,发生了错误,编译失败。原因在于0 = nValue 这样的代码在C++语法中是不允许的,常数0不能作为左值来使用。
除了上述运算符,其他几对容易弄错的运算符是&(按位与)和&&(与),以及|(按位或)和||(或)。对于这两对运算符,能够避免错误的只有细心。
请记住:
不要混淆=和==、&和&&、|与||这三对运算符之间的差别,用细心和良好的代码习惯避免由于运算符混乱带来的麻烦。
学习的路上,与君共勉。
- 编写高质量代码-改善C++程序的150个建议-3
- 《编写高质量代码:改善C++程序的150个建议》读书笔记3
- 《编写高质量代码:改善Java程序的151个建议》 建议3
- 《编写高质量代码:改善Objective-C程序的61个建议》
- 《编写高质量代码改善C++程序的150个建议》摘录
- 编写高质量代码:改善C++程序的150个建议(一)
- 编写高质量代码:改善C++程序的150个建议(二)
- 编写高质量代码:改善C++程序的150个建议(三)
- 编写高质量代码:改善C++程序的150个建议(四)
- 编写高质量代码:改善C++程序的150个建议(五)
- 编写高质量代码:改善C++程序的150个建议(六)
- 编写高质量代码:改善C++程序的150个建议(七)
- 编写高质量代码:改善C++程序的150个建议(八)
- 编写高质量代码:改善C++程序的150个建议(九)
- 编写高质量代码:改善C++程序的150个建议(十)
- 编写高质量代码:改善C++程序的150个建议(十一)
- 编写高质量代码:改善C++程序的150个建议(十二)
- 编写高质量代码:改善C++程序的150个建议(十三)
- socket编程之openssl
- 通过css加载远程字体
- 密码
- excel 导入
- Repeated column in mapping for entity:(should be mapped with insert="false" update="false")
- 编写高质量代码-改善C++程序的150个建议-3
- ora10客户端安装卸载
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite
- 如何Shrink Undo表空间,释放过度占用的空间
- Tomcat JAVA heap space
- js特效
- Fontconfig FreeType, css之间的关系
- Android技术积累:图片缓存管理
- nginx学习笔记【安装】