<video id="en21j"><xmp id="en21j">

  • <big id="en21j"></big>

    <source id="en21j"></source>

      <sup id="en21j"><dd id="en21j"><rp id="en21j"></rp></dd></sup>
      1. 西安济通电气有限公司

        研发生产型企业

        行业新闻

        主页 > 行业新闻

        行业新闻

        嵌入式软件的编程规范和注意事项

        发布时间:2018-07-22 18:00

      2. 全部课程
      3. 职业路径
      4. 技术问答
      5. 企业内训
      6. 就业班

        直播课程

        VIP课程

        免费课程

        嵌入式

        物联网

        WEB全栈

        JAVA EE

        VR/AR

        Android

        iOS

        UI/UE

        技术问答

        资料下载

        技术干货

      7. 超级免息月

        暑期大放价,免息购不停
        200元免息券限时限量领

        立即领取

      8. Android APP

        iOS APP

        微信公众号

      9. 0

        消息

        没有消息

        查看全部

      10. M豆 300|M豆 0赏金 0

      11. 我的课程

      12. 我的订单

      13. 我的资产

      14. 积分商城

      15. 2018

        07/16

        10:52

        分享

        用微信扫描二维码

        评论

        0

        嵌入式软件的编程规范和注意事项

          嵌入式系统已经在各行各业中得到了广泛的应用,随着人们的生活向信息化,智能化的发展,嵌入式技术将彻底融入到我们的生活,在我们的生活当中扮演越来越重要的角色。对于嵌入式系统来讲,嵌入式软件相当于嵌入式系统的灵魂,整个嵌入式系统如何工作,都是由嵌入式软件来控制的。如何编写高质量,高效率的嵌入式软件在实际项目开发过程中变的越来越重要。本文针对嵌入式软件的特点,从嵌入式软件编程规范和注意事项2个方面来阐述如何编写高质量的嵌入式软件。

          一、 嵌入式编程规范

          我们在公司进行嵌入式项目开发的时候,并不是你一个人在单打独斗,通常是一个团队在一起战斗。很多人在一起共同完成一个嵌入式项目,通常是每个成员,每个小组完成整个项目中的一个或几个?。我们编写的代码首先是给人看的,其次才是给机器执行的,这就要求我们团队中的每个人在编写软件的时候,要遵循统一的编程规范和编码风格,提高代码的可读性和可维护性,方便团队成员之间的沟通和交流。在实际项目开发过程中,遵循统一的编程规范相当重要,同学们一定要引起足够的重视,下面我就从代码排版,代码注释,标识符命名,代码可读性和函数设计几个方面来讲解比较通用的嵌入式软件编程规范。

          1. 代码排版

          1) 程序块要采用缩进风格编写, 缩进的空格数为4个或一个TAB键,设置TAB键为

          4个空格.

          例如:

          int main(int argc, char *argv[])

          {

          int a=900; //缩进4个空格

          }

          2) 相对独立的程序块之间、变量说明之后必须加空行

          例如:

          if (!valid_ni(ni))

          {

          ... // program code

          }

          //相对独立的程序块之间加空行

          repssn_ind = ssn_data[index].repssn_index;

          repssn_ni = ssn_data[index].ni;

          3) 较长的语句( >80字符)要分成多行书写, 长表达式要在低优先级操作符处划

          分新行,操作符放在新行之首, 划分出的新行要进行适当的缩进, 使排版整齐,

          语句可读。

          例如:

          perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN

          + STAT_SIZE_PER_FRAM * sizeof( _UL );

          4) 不允许把多个短语句写在一行中,即一行只写一条语句。

          例如:

          rect.length = 0;

          rect.width = 0;

          5) if、 for、 do、 while、 case、 switch、 default等语句自占一行,且if、 for、do、

          while等语句的执行语句部分无论多少都要加括号{}。

          例如:

          if (pUserCR == NULL) //if语句单独占一行

          { //执行语句只有1条也要加{}

          return;

          }

          6) 程序块的分界符(如C/C++语言的大括号‘ {’和‘ }’)应各独占一行并且位

          于同一列, 同时与引用它们的语句左对齐。 在函数体的开始、 类的定义、 结

          构的定义、 枚举的定义以及if、 for、 do、 while、 switch、 case语句中的

          程序都要采用如上的缩进方式.

          例如:

          for (...)

          { //{}单独占一行,与for左对齐

          ... // program code

          }

          void example_fun(void)

          {

          ... // program code

          }

          2. 代码注释

          1) 注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不

          能太少, 注释语言必须准确、易懂、简洁,防止注释的二义性.

          2) 说明性文件(如头文件.h文件)头部应进行注释, 注释必须列出:版权说明、版本

          号、生成日期、作者、内容、功能、 修改日志等, 头文件的注释中还应有函数功能

          简要说明。

          例如:

          /*************************************************

          Copyright (C), 2004-2018, 华清远见教育集团.

          File name: // 文件名

          Author: Version: Date: // 作者、版本及完成日期

          Description: // 用于详细说明此程序文件完成的主要功能,与其他?

          // 或函数的接口,输出值、取值范围、含义及参数间的控

          // 制、顺序、独立或依赖等关系

          Function List: // 主要函数列表,每条记录应包括函数名及功能简要说明

          1. ....

          History: // 修改历史记录列表,每条修改记录应包括修改日期、修改

          // 者及修改内容简述

          1. Date:

          Author:

          Modification:

          2. ...

          ******************************************************/

          3) 源文件头部应进行注释, 列出: 版权说明、 版本号、 生成日期、 作者、 ?槟康/功能、主要函数及其功能、 修改日志等.

          例如:

          /************************************************************

          Copyright (C), 1988-2018, 华清远见教育集团.

          FileName: test.cpp

          Author: Version : Date:

          Description: // ?槊枋

          Function List: // 主要函数及其功能

          1. -------

          History: // 历史修改记录

          David 96/10/12 1.0 build this moudle

          *************************************************************/

          4) 函数头部应进行注释,列出函数的功能、输入参数、输出参数、返回值等。

          例如:

          /***************************************************************

          Function: // 函数名称

          Description: // 函数功能、性能等的描述

          Input: // 输入参数说明,包括每个参数的作用、取值说明及参数间关系。

          Output: // 对输出参数的说明。

          Return: // 函数返回值的说明

          Others: // 其它说明

          ****************************************************************/

          5) 边写代码边注释, 修改代码同时修改相应的注释, 以保证注释与代码的一致

          性。 不再有用的注释要删除。

          6) 注释应与其描述的代码相近, 对代码的注释应放在其上方或右方(对单条语句

          的注释)相邻位置, 不可放在下面,如放于上方则需与其上面的代码用空行隔开。

          3. 标识符命名

          1) 标识符的命名要清晰、 明了, 有明确含义, 同时使用完整的单词或大家基本

          可以理解的缩写,避免使人产生误解.

          2) 对于变量命名,禁止取单个字符(如i、 j、 k...) ,建议除了要有具体含义外,

          还能表明其变量类型。建议在变量前面加前缀 g表示全局变量,m表示形式参数.

          例如: int gCount = 0;

          3) 命名规范必须与所使用的系统风格保持一致,并在同一项目中统一,比如采用

          UNIX的全小写加下划线的风格或大小写混排的方式, 不要同时使用大小写与下

          划线混排的方式。

          例如: char total_score =0;

          4) 函数名应准确描述函数的功能,使用动宾词组为执行某操作的函数命名。

          例如:

          int input_record( void )

          unsigned char get_current_color( void )

          5) 除非必要,不要用数字或较奇怪的字符来定义标识符

          6) 用正确的反义词组命名具有互斥意义的变量或相反动作的函数等

          4. 代码可读性

          1) 注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级

          例如:不要这样写: word = high

        物联网产品 用智慧系统改变人们的生产生活状况

        智能仪器仪表定制开发 物联网平台设计 物联网无磁水表 智慧水务 各种流量计定制开发 西安嵌入式开发生产 物联网水表?

        快3投注