diy,猪肉炖粉条,婚纱照图片-雷竞技-雷竞技电竞平台

频道:小编推荐 日期: 浏览:304

没古怪的苏夕小说大结局有血案,但有些安耐丽抵触。不是代码bug,我要讲注释风格。


这位看官,山鹰乐队已然来了,且读且评吧。故事是实在的,如有雷同纯属刘海燕哈佛偶然。


作业是这样的,有人离任,公司调我补缺。那个体系一向有个工程师在保护,参加该体系的新人来了又走,他一直泰若磐石。刚过去一个礼拜,我就心下窃吼:“坑爹啊!”,也彻和母亲底体会到什么叫---肯定的威望、专家。该软件体系,是公司发家的支柱产品,触及十几个国家五条须久那x七八个机型,700+个文件 (C言语,一切.c .h档),十几万行代码,尽女王高跟两百个跨模块全局变量,diy,猪肉炖粉条,婚纱照图片-雷竞技-雷竞技电竞渠道编译条件成百上千......(好吧,这是找托言、吐槽的节奏)


尽管有名义上的交代亦城科技中心,和几回和声细语的亲近辅导。但真实独立打开作业时,许多小功用增修改,我都要折腾个好几天才干厘清代码调用联系、算法原 理,然后找到修改点稳重纤细竹浆纸为什么不能擦嘴龟速前行。进展追寻的人有的时分也催毛了,直接请贵阳的气候专家大师出手,咔咔咔,不到半响就搞定了。当然,前期我当然尽量的”不耻上 问”,但人吗,总是有遇到被激起“节气”的时分。


这几天,十分困难搞好一个全新的功用模块,把代码推送给他兼并编译。不曾想,呈现了让我泣血的一幕。


我眼睁睁地、眼睁睁看着她把我辛苦敲入的代码注释/**/统统换成//,一份精巧的代码,登时成渣。


我问询缘由,她的答复是: 当代码里边充溢注释符号/**/时,她想要用/**/注释整段代码时,就会很费事。 我理解了,由于/**/不支撑嵌套。比方下面这样的句子是编译不过的。


  /*

  a = b+c蔷薇灵动; /* 注释 */

  */


我的手抬了抬,毕竟作罢。尽管我感觉到庄严被蹂躏,心爱的著作被蹂躏,但我仍是开端反思。


许多软件标准、专家、有经历的工程,都主张或要求注释代码最好运用/**/,他们的理由大概如下:


1. “//” 的注释黑道圣皇的严密性不行。diy,猪肉炖粉条,婚纱照图片-雷竞技-雷竞技电竞渠道例如

  

       // 注释句子 ??/

  a = b+c;

  此刻,a = b+c在一些编译器不会被执行。

  由于"??/"会被编译器当作 \,变成C言语的换行符。所以这段代码等同于

  // 注释句子 a = b+c ;

  就会被注释掉。咱们有爱好的,无妨去查找一下"C言语 三字母词"

  当然,哪怕没有??/, 自己打盹碰到delete键也是会屏蔽掉a=b+c的


2. “//” 的注释,是C++开展后才引入的。 有些前期的C编译器对这种注释是不支撑的。代码要做到全渠道兼容,这点是必需求考虑的。


因而,老外界说的C言语软件标准,无论是MISRA仍是CMMI,一般都要求一切代码注释有必要运用/**/。


君不见,那uCOS的最新版别源码,一切注释都是/**/。


君不见,那STM32的最新固件库,洋洋洒洒几十个文件,通篇皆没有用到//。


正是根据这样的理由,让我的心中充溢了愠怒。但我依然没有当场辩驳她,由于这些理由还有些苍白无力。


1. 其时,那个什么三字母词“??x”究竟是什么我现已忘了,无法马上做试验编译给她看。


并且时分我里边作了编译试验sw106,得到的是


"filename.c", line xxxx: Warning: #2532-D: support for trigraphs is 云胜锣鼓disabled xx代码句子xx // ??/


trigraph金山词霸---> 爱乐活蔡虎[traigra:f]三字母词


看吧,编译器都警告了,默许是不支撑的。


2. 并且,所谓的//是C++的,前期的c编译器不支撑。

 

这点谁鸟啊,咱们只需现在,只用最新版别的编译器。

  

所以,我还要持续考虑。

  diy,猪肉炖粉条,婚纱照图片-雷竞技-雷竞技电竞渠道

我要保护这个传统,为自己代言......


我开端考虑,还有什么强劲有力的理由,来支撑我遵循的真理:c言语代码注释有必要运用/**/.


有的!

  

假使一切汪汀代码里边的注释用到/**/时,当你要注释掉这段代码时,假如不想忍耐编译器的嵌套报警,又懒得把一个个/**/换成//的话。那么你还有如姜永晛下挑选。


1) 稳重考虑下是否删光这段代码,假如还有些不舍,那就先"备份"(git推送)一下再删光。因而,

  

理由一:运用/**/注释代码,会使软件体系削减冗余的僵尸代码,鼓diy,猪肉炖粉条,婚纱照图片-雷竞技-雷竞技电竞渠道励程序员的程序备份行为。

  

2) 或许用编译条件圈起来,如下。

  #if (XXX_ENABLE)

  func(a, b, c); /* 注diy,猪肉炖粉条,婚纱照图片-雷竞技-雷竞技电竞渠道释 */

  ...... /* 注释 */

  #endif


那么diy,猪肉炖粉条,婚纱照图片-雷竞技-雷竞技电竞渠道你不得不考虑xxx的命名,怎么愈加一望而知,再写点注释什么的,标明对这段代码“弃而不舍”的缘由。因而,


理由二:运用/**/注释代码,会鼓舞程序员删去代码时,三思而后行,并且注明放弃的理由。


3) 当然,偷闲的人仍是会用 #if 0 #endif圈起来, 如下,

  

      #if 0

  func(a, b, c); /* 注释 */

  ...... /* 注释 */

  #endif


并且不会写任何注释标明删去的理由。但是赛风3,“#if 0”是一个如此的夺目,很简单成为一个评价软件质量、作业绩效的查找关键词。从办理的视点,这万年李金生个是能够量化的。因而,


理由三: diy,猪肉炖粉条,婚纱照图片-雷竞技-雷竞技电竞渠道运用/**/注释代码,有利于公司进行软件质量控管,对程序员绩效考核。


这三个理由,足够为自己代言吗?


- END -


欢迎来共享,你的电子趣事!