关于《0 bug C/C++商用工程之道》的一点说明
我这两天在CSDN论坛开了一个散分贴,想宣传一下我的书。大多数朋友还是很友好的,对我的支持和鼓励很多,我也很感激。
网址在这里:http://topic.csdn.net/u/20091216/22/5a6594be-21e6-459e-ab41-57755273f465.html
当然,也有朋友认为肖某人吹牛,说0bug不可能,并且隐隐有PK的意思,我呢没办法,写了个说明。
这里想了一下,也在这里share出来,大家看看,如果觉得肖某人有诚意呢,给个好,诚意还不够呢,继续探讨。
呵呵,还是那句话,一家之言,欢迎拍砖哈。
原文就不摘录了,太长,这个问题的起源呢,是我书目录中有个提法,建议不要用do...while()语句,因为有潜在的bug风险,当然,一部分朋友就此开始论战,举出各种例子来证明肖某人胡说,甚至还设置一些程序陷阱,来故意制作bug,以证明不用do...while()语句,就不可以写出程序。
最后没办法,我回了个长文,这里贴给大家看。
嗯,刚才哄娃睡觉呢,没空想问题。
现在想了一下,我发现我被你绕进去了。
do...while()是典型的循环语句,被你用作宏包容器了。
嗯,我的无错化程序设计原则里面有一条,严禁一语多义。
这个呢,有两层意思:
1、不要在同一行写太多代码。阅读的人无法理解。
2、不要故意耍技巧,把A含义的语句故意写成B含义。
无错化的含义,主要就是写人阅读无障碍的程序,好的程序,从易读开始。
因此,do...while()用作宏包容器本身,不会在我的程序里面出现的。我会回避这种写法。
一语多义,由于给阅读者误导太过于严重,一般严禁这种书写方法。这是减少程序bug的关键。
因此,不管你怎么举例子,我只能说,我会按照我的方法写程序。
C语言太灵活,用法太多,不约束一下,确实不好控制bug。
很多时候程序bug,是由于程序员理解有误造成的。在公司里面,我们的代码通常写完后,还有后续的其他维护者,因此,一般说来应该写易读的程序,才会减少bug的。
也许以前很多前辈的代码,用到了很多C的花样和技巧,也能编译通过,也对。
但是,我想我不会用。因为我怕bug。
因此,这里我说句话,请各位坛友了解一下:
我书里面介绍了我的一些实战方法,来减少bug,但这并不绝对。
首先,这不是唯一正解,大家完全可以自行寻找自己的正解,想偷点懒,省点事呢,直接看我的书也可以。不看也无所谓,并不是说,离了我的书就写不出程序的。
其次呢,C和C++语言灵活性太大,一种算法,可以说有一万种写法,我的原则很简单,每种解法,只要一套方
相关文档:
1、开发环境请参考《搭建ACE-5.7.4+VS2008开发环境》一文
2、gSOAP库,下载地址:http://gsoap2.sourceforge.net/,本文使用的版本是:gsoap_2.7.15,gSOAP的编程可以参考doc目录下的soapdoc2.pdf,官方文档写的非常详细。
让我们开始gSOAP编码旅程:
1、创建gsoap_server.h:
//gsoap ns2 service namespace: http://l ......
在函数体中添加以下代码:注:memcpy中的bitmap为bmp生成的c文件数组名
int width = 533;
int height = 615;
BYTE* DDBdata=new BYTE[width*height*2];
BYTE* DIBdata;
memcpy(DDBdata,(void *)bitmap,width*height*2);
  ......
C/C++招聘的一些感受和经验[转]
前段时间刚参加了n多公司的C/C++软件工程师的面试,有国企,外企,私企(moto,飞思卡尔,港湾,中国卫星XXX(这个牛))等等等等。感受感想颇多,近日终于空闲,在此表述一下。
本人基本条件:3年开发经验,2year+ Windows development experence,1 ......
50个c/c++源代码网站
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。
1、http://snippets.dzone. ......