基于单片机C语言编程格式

1 篇文章 0 订阅
1 篇文章 0 订阅
 

1. 凡是注解均用如下长度的字符数,此数是正常情况下在keil中A4纸的打印长度(105个字符),在word中设置左右边距为1.0cm。

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

2. 文件头的格式:

/*******************************************************************************************************   
*                                         Company Name                                                
*                                           Address

*                         (c) Copyright 20xx, Company Name, City, State
*                                    All Rights Reserved
*
*
* FileName       :
* Version        :
* Programmer(s)  :
* Description    :
*
*
*******************************************************************************************************/

3. 函数头的格式:

/*******************************************************************************************************
* FunctionName   :
* Description    :
* EntryParameter :
* ReturnValue    :
*******************************************************************************************************/

4. 文件结束格式:

/*******************************************************************************************************
*                                         End Of File                                                 
*******************************************************************************************************/

5. 文件管理:
 
   对于文件的管理来说,应把每一个程序模块分成两份。一个是C语言源代码,一个对应的头文件,且放在一个文件夹中。
例如,关于LCD1602的驱动模块,应该分为LCD1602.C和LCD1602.H,并放在LCD1602文件夹中。LCD1602.C中包含的是驱动程序
的源代码,尽量做到与移植无关;LCD1602.H中应该包含函数的申明部分、宏定义、全局变量的申明接管脚定义等,也就是
与移植相关的部分。
   对于main.c函数应该对于config.h头文件。main.c中为应用程序的主程序部分,负责把各个模块联系起来;而config.h头
文件为整个系统的配置文件,里边除了编写不依赖于编译器的数据类型的定义外,还应该把整个工程需要的所有程序模块均包含进来,这样每一个程序
模块中都只需要包含config.h头文件即可。

6. 命名规则:

   A. 函数命名:
      函数名均由大写字母开头,单词之间也应用大写区别,为了移植以后程序模块的函数名不重复,应在程序模块的每一个函数名中加上模块名。如: LCDWriteData(),LCD表示液晶模块,WriteData写数据到液晶模块中。至于下划线的带与否,可以用与区分是函数的内部函数与否,也就是说,如果带下划线,表示为模块内部函数,应用程序可能不需要调用,模块内部调用;不带下划线表示为应用程序需要调用的函数。
   B. 变量命名:
      全局变量 -- 大写字母开头,并且加上文件名为变量前缀。
      局部变量 -- 小写字母开头,
      内部变量 -- 用简单字母表示,如:循环用i,j,k等;指针 - p,字符 - c,字符串 - s。
  
   总结:形式参数 -- 在函数中应也小写开头;
         自动变量 -- 小写字母;
         静态变量 -- 大写开头;
         外部变量 -- 文件名开头;
         函数命名 -- 文件名开头。

7. 注解规则:

   对于函数的注解均该应“//”来表示,而不是“/**/”。因为前者表示后,如果想把整段代码注释掉只要加上后者,但如果一开始就用了后者,再想注释掉整段代码就比较麻烦了。注解应该对齐,如果一行写不下,可以写在代码的前面一行,也可以在后面一行继续编写。

8. 代码编写格式:
 
   对于代码的编写格式,将严格按照《c语言编程规范》来编写。
 
9. 宏的定义:
  
   常数和宏定义要用全大写表示,单词之间可以用下划线分割开。十六进制要用“0x”开头,其后的字母一定要用大写表示。如果是定义的是常量不需要加括号,但是表示的是一个或更多的语句时应该加上括号,而要替代的表达式均应加括号。如:

   #define  KEY_FF            (0x0F)                   // 常量定义,常量后不加括号,表达式加括号
   #define  KEY_BUF_FULL()    (KeyNRd > 0)             // 语句应加括号

10. 数据类型:

    typedef     unsigned    char      Boolean;         // Boolean                                           位变量
    typedef     unsigned    char      uint8;           // defined for unsigned 8-bits integer variable      无符号8位整型变量 
    typedef     signed      char      int8;            // defined for signed 8-bits integer variable     有符号8位整型变量
    typedef     unsigned    short     uint16;          // defined for unsigned 16-bits integer variable     无符号16位整型变量
    typedef     signed      short     int16;           // defined for signed 16-bits integer variable       有符号16位整型变量
    typedef     unsigned    int       uint32;          // defined for unsigned 32-bits integer variable     无符号32位整型变量
    typedef     signed      int       int32;           // defined for signed 32-bits integer variable       有符号32位整型变量
    typedef     float                 fp32;            // single precision floating point variable (32bits) 单精度浮点数(32位长度)
    typedef     double                fp64;            // double precision floating point variable (64bits) 双精度浮点数(64位长度)

11. 局部变量:
 
   一些程序模块会用到局部变量,这些局部变量只用于这个模块中,应将这些局部变量隐藏起来,不让别的文件看到。则应该在这写变量前加上static关键字实现。

12. 括号应用:
 
   在多个运算符存在的条件下,应该应用括号,避免优先级的错误及阅读方便。如:

       ssY = ssM * ssX + ssB;   应写成 : ssY = ((ssM * ssX) + ssB);

13. 真假定义:

   当定义逻辑对立面时,基于原始的陈述,以宏的方式,首先定义其中一种逻辑情形,然后再定义相反的另一种情形。

       #define TRUE    (1)
       #define FALSE   (!TRUE)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值