随笔分类 - 编程规范
摘要:概述: 宏是C和C++语言的抽象设施中最生硬的工具,它是披着函数外衣的饥饿的狼,很难驯服,它会我行我素地游走于各处。要避免使用宏。讨论: 在C++中,几乎从不需要使用宏。 可以用const或者enum定义易于理解的常量,用inline避免函数调用的开销,用template指定函数系列和类型系列,用namespace避免名称冲突。 C++的宏的主要问题在于,它们表面上看起来很好,而实际上做的却是另一回事。宏会忽略作用域,忽略类型系统,忽略所有其他的语言特性和规则,而且会劫持它为文件其余部分所定义(#define)的符号。宏调用看上去很像符号或者函数调用,但实际上并非如此。宏...
阅读全文
摘要:实体:变量、类、函数、名称空间、模板和库。只给一个实体赋予一个定义良好的职责。随着实体变大,其职责范围自然也会扩大,但不应该发散。如果一个实体有几个不同的目的,则给使用带来的难度往往会激增,因为这种实体除了会增加理解难度、复杂性和各部分中的错误外,还会导致其他问题。这种实体不仅更大,而且更难以使用和维护。此外,这种实体经常会为自身的一些特定用途提供有问题的接口,因为各个功能领域之间的部分重叠,会影响干净利落地实现每个功能所需的洞察力。具有多个不同职责的实体通常都是难于设计和实现的。“多个职责”经常意味着“多重性格”----可能的行为和状态的各种组合方式。应该选择目的单一的函数,小而且目的单一的
阅读全文
摘要:虽然警告不会影响你代码的运行,但请不要忽略它。把编译器当做你的朋友,如果它对你发出警告,这经常是说明你的代码中存在潜在的问题。常遇到的一些警告:1、第三方头文件。2、未使用的函数参数。3、定义了从未使用过的变量。4、变量使用前可能未经过初始化。5、遗漏了return语句。6、有符号数/无符号数不匹配。例外情况:有时候,编译器可能发生烦人的甚至虚假的警告,但是又没有提供消除的办法,这时忙于修改代码解决这个警告可能是劳而无功或者事倍功半的。如果遇到了这种罕见的情形,作为团队的决定,应该避免对纯粹无益的警告再做无用功:单独禁用这个警告,但是要尽可能在局部禁用,并且编写一个清晰的注释,说明为什么必须禁
阅读全文
摘要:如果人们按照程序员编程的方式修建房屋,那么一只啄木鸟就能毁灭整个文明。 ---Gerald Weinberg《C++编程规范》这本书是对多年的C++经验的总结,是编写高质量C++代码的准则。这本书能给一些初学者带来质的变化,因为代码的规范也是衡量一个优秀程序员的标准。如果你看过这本书的话,就不要继续看下去浪费自己的时间了,我也只是个大学生,你可以想象得到能从我这里得到些什么了。如果你没看过这本书的话,希望你能看完这篇文章,可能马上你就会跑到书店,或者图书馆,或者当当。这本书是从第0条开始的,代码书写的首要指导原则,对编程规范而言最基本的建议。不要拘泥于小节。作者把这句话作为标题,意思是说你写的
阅读全文

浙公网安备 33010602011771号