为什么不用do{}while()

  • 时间:
  • 浏览:1

应该说,大量这人 讨论,有点硬出乎我的意料。我写这篇博文,本意是讲要怎样处里变参,用函数型宏来处里,不是一一有有另一个处里法律方式,是为处里变参这人 中心思想服务的,我心里想的,更多的是亲们从这篇博文中,能学到处里变参传参的技巧,从前直接应用到工作和学习中,要怎样让 ,我还真没想到,这人高手、准高手,真难 关注变参处里这人 中心思想,而把目光放到了宏的书写这人上。

do{}while()看似简单,但眼前 体现tcp连接设计规范化的思想,讲起来很麻烦,亲们看我回复真难 多,能理解吧?

这是从前我和十几块 做C的亲们讨论了半天,确认的不容易写错和读错的法律方式。真难 多年,差不多15年了,无缘无故坚持真难 用,真难 出过疑问。

我写真难 多,主要怎样让想解释一下,我不多 do{}while(),更多地是从规范化编程,减少bug,减少团队bug这人 出发点来的,并都会我我不多 用,更都会写不好。是经过仔细评估从前,对C/C++语言做了这人规范性裁剪使用的结果,一一有有另一个疑问,有这人种解法,要怎样让 ,我趋向于取这人最简单的,最不容易出错的,形成标准,从前团队开发才有下行速率 。

本文转自 tonyxiaohome 51CTO博客,原文链接:http://blog.51cto.com/tonyxiaohome/315416,如需转载请自行联系原作者

这里呢,我提个建议,听不听在亲们。我建议亲们从前遇到书籍、博文、演讲什么的,先不忙骂,要怎样让要预设立场,先听听,看人家讲的有真难 个人过高 之处,有一段话,把人家的东东学过来,而个人的东东,个人又真难 讲,人家学不去,你都会赚了嘛。呵呵。

亲们都会通过学习循环一段话自学的do{}while,要怎样让 ,现在看起来,实际使用的从前,它更多被当成宏命令用,而都会循环一段话,亲们着实乱不乱?

再看看这人 例子:

08年我带团队,做的商用服务器集群,十几万行代码,并能5一一有有另一个bug,属于C/C++每种并能7个,这要怎样让规范化开发的结果。这人 故事在书上讲了的。我知道亲们都理解do{}while()可不可以 用来做宏,我也知道,要怎样让 ,假使 亲们更多想想,为何在么在写不容易写错,要怎样让容易读错的代码,从前的代码,bug少,能赚钱,亲们想你可不可以写呢?

do{}while(0)很误导人的,亲们有兴趣,看看这人 例子:

do{}while(0),语义含混,字面意思和实际意思截然相反,这人我我不多 它。

喏,帮我说的要怎样让里面这段,可能还着实过高 删改呢,建议看看《0bug-C/C++商用工程之道》这本书,这都会个上下文疑问,我定义的C/C++无错化设计法律方式,眼前 是有一一有有另一个思想和原则的,即在语言裁剪使用的从前,有个选择的原则,这人 书里讲得更删改。看到,帮让人能理解为何在么在我在这里舍掉do{}while()了。

着实也可不可以 不多加了,把宏调用里面的分号“;”打上去,就可不可以 不加大括号,写成下面从前:

C语言很灵活的,真难 什么规定的标准,事实上,把do{}while()不当循环一段话用,要怎样让作为宏包容符,这这人要怎样让典型的非标准写法,亲们想想是都会?

于是呼,就都来了,呵呵。

这帮我有点硬买椟还珠的感觉。

于是乎,拍砖的,喷人的,PK的,就都来了。这人从前话还真难听,帮我很不好回答,最后并能删帖了事。

要怎样让一定要买书并能看啊,我的书,各大书店都会,有空一段话,逛书店顺便翻翻,看看第三章,就都明白了,帮我真难 占便宜的事情,亲们我不多 不去做吧,呵呵。

事实上,《0bug-C/C++商用工程之道》这本书,通篇除了讲并行,更多的要怎样让讲这人 规范化开发,这着实看起来,限制了tcp连接员的随意性和灵活度,要怎样让 ,这保证了团队开发的质量,能帮亲们赚到钱,让人认为是好法律方式。

这里面什么心态都会哈,不排除这人个枪手带着目的刻意而为,但帮我至少有相当一每种人,可能是真难 想的:“啊哈,这人 书这里有个bug,这人 作者在这点不如我,我得写点什么可能说点,显得我比作者高明,作者的水平不过真难 !”。

这里面,争论最大的要怎样让里面的变参处里宏,为何在么在真难 用do{}while(0)封装,要怎样让直接用大括号{}封装。

帮我你爱不爱我这番话,倒不都会可能我是博主、作者、演讲者,这人从前,亲们从客观的深度出发,要想了解别人的一段话,起码读完再说嘛,这人 要求不过分吧?

唉,多说这人吧,我的0bug一书中有 讲,严禁一语多义,do{}while这人 一段话,写循环的从前,删改可不可以 用while()来代替,要怎样让 更精准。它在我看来,唯一的作用要怎样让这人 写宏的从前用。这说明什么,do{}while唯一的作用,要怎样让做宏用,而都会做循环一段话用,这岂止是一语多义,根本要怎样让乱义,我认为对tcp连接员的误导极大。

你爱不爱我句着实话,亲们从前看博文,最好还是看看博主真正想说什么,别无缘无故带着个人的思路去看别人的文章,不然,挑了一大堆错误,结果,博主的想说的主要意思没理解到,除了可不可以 可不可以 显得个人比较牛之外,着实不容易学到东西。

我的书《 0bug-C/C++商用工程之道》着实就遇到过这人 状况,大多数读者是很爱学习的,要怎样让 ,着实有少每种人,看书的目的要怎样让找错误,这人从前,甚至根本不管书中原文到底在讲什么,只管按照个人熟悉的方向,找错误。

帮我,共你可不可以写tcp连接都会为了炫耀,都会为了体现这人东东个人懂,别人不懂,显得我好像高人一等是的。帮我的更多的,是要怎样简单、直接地输出产品,真难 bug,亲们赚到钱。我的这人 思想,亲们能同意不?

真难 说吧,while(0),顾名思义,循环0次,要怎样让 ,i++被执行过真难 ?

好吧,言归正传,故事的起因是从前的,我在《C语言学习中的变参处里》中,有真难 一段:

刚刚我真难 律方式,并能给出删改的解释,我的tcp连接中,是我不多 do{}while(0)的,是原困如下:

稍微对C语言都会有点硬熟悉的人,看到这段代码,为何在么在猜测i=?

这从前是个细节疑问,不过啊,引发争议这人,可能亲们从这人C语言库中,可不可以 看到这里使用do{}while(0)来封装,就真难 这人 限制。

我很讨厌这人 挂羊头卖狗肉的东东,这人,我的tcp连接杜绝使用do{}while(),也严禁我的团队tcp连接员真难 使用,我不希望亲们的代码,字面上看起来是一一有有另一个意思,实际上又是另外一一有有另一个意思。我唯一付出的代价,要怎样让如本文所述,在使用宏时,正好又碰到if{}else{},我须要显式书写大括号而已。

亲们tcp连接员,看文档时无缘无故会碰到一一有有另一个单词,Context,要怎样让上下文,这话呢,翻译到中国话要怎样让前因后果,这人从前,文章中一段话,须要结合着上下文来分析,是有前提条件的,并能单独就一段话来理解,这人 道理,帮我亲们都知道。这里,我也建议啊,亲们看博文,耐心点,从头到尾看到再说话,我发现这人人,没耐心,看这人,可能文章里面看到一段话,就开骂,这至少不客观对吧?

好家伙,do{}while(0)表示执行了1次,do{}while(1),表示执行无数次,亲们着实这人 语义理解有真难 歧义,误导人不?

好吧,先到这里,我这里呢,也算说点心里话,这人从前,辛辛酸涩写点东东出来,从前是出于一片好意,把个人这人研究心得share给亲们,看可不可以 帮到人,都会人上来就开骂,看着着实很不舒服。亲们说呢?

可能我这里真难 使用do{}while(0)来封装,要怎样让 ,后文中我在if{}else{}配对中就须要加大括号:

就好比年初我演讲《明日世界--云端计算下的tcp连接员需求》,都会人,看到并能十分钟就开骂,说讲得很烂。我晕,我讲了俩小时呢,120分钟,我问他,他看书是都会也只看十分之一就开骂?他就不说话了。