软件设计师教程知识点精讲之C++编码规范

软件设计师 责任编辑:长颈鹿 2016-07-26

添加老师微信

备考咨询

加我微信

摘要:2016下半年软考软件设计师报名即将开始,同学们是否在学习过程中遇到了一些困难,下面由希赛软考学院为打算参加下半年考试的你们准备了一些软件设计师教程知识点精讲之C++编码规范,希望对大家有所帮助。

      >>>>点击进入了解软件设计师培训视频

>>>>点击进入了解软件设计师在线辅导 

>>>>点击进入了解软件设计师面授班 

      2016下半年软考软件设计师报名即将开始,同学们是否在学习过程中遇到了一些困难,下面由希赛软考网为打算参加下半年考试的你们准备了一些软件设计师教程知识点精讲之C++编码规范,希望对大家有所帮助。 

      编码规范非常重要,不仅仅在于没有了它在团体合作中互相读不懂对方的代码,还在于以后的自己也可能需要维护以前自己写的代码,还在于可读性越强越不轻易犯一些常规错误。

      规范本身应该是一个规定,但C/C++在编码上并没有这样的规定,凡符合C/C++语法的就是合格的代码,但符合C/C++语法的代码不一定是优秀的代码,要对一些不良行为做约定,比如不应该将局部使用的变量作为全局变量,这是其一;其二,代码本身也可能会进行合作开发或后期维护,那么一个表达统一结构清楚的代码是必要的。由这两点产生了编码规范,所以编码规范就是公司或团体对代码编写的一个规定和约定。

      对于第二点而言,虽然其存在的价值是必须的,但是适用场合都有所不同性,且众口难调,缺乏非此不可的科学依据。比如大家熟悉的匈牙利命名法,其在变量名称中包含了类型信息,其优点不言而喻,在代码实现过程中非常方便,但缺点也有不少,比如变量本身就具有类型,而名称中再次包含了类型信息,这是严重的冗余,修改变量类型就必须修改变量名称,更主要的是没有办法保证它们的一致性,总之名称应该是对功能的描述,而不应该含有类型信息。所以即使强如匈牙利命名法,在M$的编码规范中也不将再存在。因为第二点不能放之四海而皆准,所以我将在这篇短文中讲述第一点,有科学依据则易于为人接受,但我还是要强调一下,这第一点只是编码规范存在理由的一部分,而不是全部,第二个理由也非常重要,其引申出来的规范不可缺少。

      要想写出优秀的C/C++代码有很多注重点,不是一个小短文可以描述清楚的,我这里仅仅讲述变量的作用域和生存期,根据这些规则产生的编码规范会和你曾经见到过的一些编码规范有所抵触,这不足为奇,比如很多编码规范规定了函数体的最大行数,过多的行数大部分情况下是因为功能结构化分不清,不利于阅读,但却不一定如此,假如在这个规定和规定这个规定的目的之间产生了抵触,那么这时就应该舍弃这个规定,所以我认为称它编码建议胜于称它编码规范。

      对于编码规范含义的讲解至此结束,话入正题,对于一个面向过程的语言而言,函数过程是其基本单位,函数是一个功能完整的实现过程,面向对象也如此,只是类代替了函数过程的部分地位。

      为什么要将一个过程独立成一个函数?这是因为此过程功能完整明确,在独立成一个函数之后其还具备了复用的能力。

      为什么不将一个过程独立成一个函数?这是因为此过程与其他部分耦合度太高,没有明确的功能含义,即使独立出来,也不存在可复用的场合。

      作用域就是起作用的范围,一个应该在多处起作用的对象,不应该局限于一个小空间中,反之亦然。这里可以使用的有函数、对象、名字空间等,假如以上皆不符合,那么就应该使用为部分人所忽视的“{}”。

      以下就是一个对变量/过程的作用域和生存期的演示:

      在很多地方都可能会用到的函数或类型()

      {

      };

      一个功能函数或类型()

      {

      仅在此函数或类型中用到且多次用到的子函数或子类型()//C++没有子函数这一说法,可以使用函数对象(仿函数)替代

      {

      };

      在接下来的部分也需要用到的变量;//注重这个分号

      {

      仅在这个{}中用到的临时变量;

      仅在此函数或类型中用到且只用到一次的功能段

      }

      函数或类型其他部分;

      };


    返回总目录:软件设计师教程知识点精讲汇总


    希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库软考历年真题)、软考培训教材软考视频教程,多样的培训方式包括在线辅导面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取