5.南京工业大学嵌入式C语言编程规范_v2.4.pdf
自动化与电气工程学院
嵌入式C 语言编程规范
日期 2013-12-31
版本 V2.4
整理 王晓荣
一、规范说明
本规范作为南京工业大学自动化与电气工程学院教师、学生从事嵌入式C 语言等相关开发
工作的编程规范。带有索引性质,力求简洁明了,请遵照此规范进行嵌入式C 语言编程教学和
学习。
二、命名规则
通用命名规则
1. 移植代码和修改部分代码时,保持原命名风格。
2. 目录名、文件名、函数名、参数名、变量名等,如果无特殊的需求(如果是引用其他地方,
可以保留相应的名称) ,均采用Uinx 风格:“全小写 + 下划线”(特别注明除外)。
说明:
不同系统对文件名大小写处理不同(MS 的DOS 、Windows 不区分大小写,但是Linux
系统则区分),所以代码文件命名建议统一采用全小写字母命名。
示例:
3. 禁止使用单字节命名变量,但允许定义i、j 、k 作为局部循环变量。
4. 除了常见的通用缩写 (附录A)以外,不使用单词缩写,不得使用汉语拼音。
5. 用正确的反义词组 (附录B)命名具有互斥意义的变量或相反动作的函数等。
变量名
6. 全局变量和全局静态变量添加前缀。
说明:
全局变量十分危险,能不用则不用,不得不用时,通过前缀使得全局变量更加醒目,
促使使用时更加小心。
单个文件内部使用全局变量,应加static 关键字进行封装,变成全局静态变量
示例:
变量类型
7. 基本变量类型用typedef 按以下形式定义(移植或修改的文件,保持原风格):
8. 非基本变量类型,如结构、指针、枚举、共同体不得使用typedef 形式定义,(移植或修改
的文件,保持原风格)。规范的使用方法如下示例。
说明:
使用 typedef 会隐藏这个变量实际上是什么类型,在传递参数会增加出错概率。
示例:
结构体声明与定义: 枚举类型声明与定义:
宏、枚举成员命名
9. 宏、枚举成员采用:“全大写 + 下划线”形式。
示例:
注:除了头文件或编译开关等特殊标识定义,宏定义不能使用下划线“_”开头和结尾。
三、程序格式
10. 程序块采用缩进风格编写,每级缩进为4 个空格。
说明:
将编辑器的TAB 键设置为自动转4 个空格输入,这样可以防止程序在别的编辑器内打
开时原先的格式排版失效。(若干软件相关设置见附录C )
11. 每个“{”符号后都应缩进,唯一例外是switch-case 语句中,case 和default 应与“{”对齐
示例:
注:switch 语句必须有default 分支。
12. 相对独立的程序块之间、变量说明之后必须加空行。
示例:
不规范格式: 规范格式:
13. 每行语句 > 80 个字符要拆分换行 (注释除外)。
说明:
换行时要增加一级缩进,使代码可读性更好;
低优先级操作符处划分新行;换行时操作符应该也放下来,放在新行首;
换行时建议一个完整的语句放在一行,不要根据字符数断行
示例:
14. 二元操作符,如:赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符, 如
“= ”、 “+= ”、 “>= ”、 “<= ”、 “+ ”、 “- ”、 “*”、 “/ ”、 “% ”、 “&& ”、 “||”、
“<< ”、 “>> ”、 “^”等的前后都加空格。
15. 一元操作符,如:“!”、 “~ ”、 “++ ”、 “-- ”、 “& ”(地址操作符),以及关系密切的
立即操作符 (如“-> ”、 “. ”)等前后都