C语言基础--编写风格1
2016-09-06 22:02
253 查看
1 C 语言编写风格
1.1 变量名定义
数值类型与指针类型叫标量类型,数组类型与结构类型叫聚集类型1.1.1 变量
采用下划线命名法:前缀类型_变量名1.1.1.1 前缀
前缀 | 说明 | 备注 |
l | 局部变量 | |
g | 全局变量 | |
s | 静态局部变量 | |
c | 常量 | |
1.1.1.2 类型
类型 | 说明 | 备注 |
b | 布尔变量 | BOOL |
c | 有符号8位数据;字节 | INT8S |
by | 无符号8位数据;字节 | INT8U |
i | 有符号16位数据;字 | INT16S |
w | 无符号16位数据;字 | INT16U |
l | 有符号32位数据;双字 | INT32S |
dw | 无符号32位数据;双字 | INT32U |
f | 单精度浮点数 | FP32 |
d | 双精度浮点数 | FP64 |
h | 句柄 | |
p | 指针 | |
lp | 长指针 | |
a | 数组 | |
s | 字符串 | |
sz | NULL结束的字符串 | |
enm | 枚举型 | |
scm | 结构体 | |
uni | 联合体 | |
xy | x,y坐标 | |
pfn | 特别针对指向函数的指针变量和函数对象指针 | pointer of function |
1.1.1.3 变量名
下划线命名法例如:
定义一个无符号8位数据: INT8U lby_dat;
定义一个有符号32位数据: INT32S ll_dat;
定义一个指针: INT8U *lp_reg;
定义一个数组: INT8U la_reg[20];
定义一个字符串: INT8U *ls_str= {“wzt”};
定义一个全局无符号8位数据: INT8U gby_dat;
1.1.2 宏命名
大写字母+下划线的方法(形参,结构体联合体内部变量不参考)1.1.3 结构体
typedef struct student_info_tag{
INT8U number;
INT8U name[10];
INT16U achi;
}scm_student_info;
struct student_info_tag lscm_student_info;
struct student_info_tag *lpscm_student_info;
struct student_info_tag lascm_student_info[10];
1.1.4 枚举
枚举(enumerated)类型就是指其值为符号常量而不是字面值的类型;声明:
typedef enum date_tag
{
DATE_MONDAY,
DATE_TUESDAY,
DATE_WEDNESDAY,
DATE_THURSDAY,
DATE_FRIDAY,
DATE_SATURDAY= 10,
DATE_SUNDAY
}enm_date;
enum date_tag lenm_date;
默认第一个符号名的值为0;第二个是1,以此类推,若某个符号名未显示指定一个值,那么他的值比前一个符号名的值大1;
1.1.5 联合体
typedef union value_tag{
INT8U value;
INT16U value;
INT32U value;
FP32 value;
}uni_value;
union value_tag luni_value;
1.2 函数名定义
采用下划线命名法1) 局部函数命名
uart_print_enter();
2) 全局函数命名
g_uart_print_enter();
1.3 常用单词缩写
编号 | 英文 | 中文 | 缩写 | 编号 | 英文 | 中文 | 缩写 |
01 | addition | 加法 | add | 01 | float | 浮点 | flt |
02 | answer | 回答 | ans | 02 | frequency | 频率 | freq |
03 | array | 数组 | arr | 03 | header | 数据头 | hdr |
04 | average | 平均数 | avg | 04 | index | 索引 | idx |
05 | buffer | 缓冲区 | buff | 05 | image | 图片 | img |
06 | capture | 捕捉 | cap | 06 | increment | 自增 | inc |
07 | check | 检查 | chk | 07 | initalize | 初始化 | init |
08 | count | 计数 | cnt | 08 | iteration | 重复 | itr |
09 | column | 列 | col | 09 | length | 长度 | len |
10 | control | 控制 | ctl | 10 | memory | 内存 | mem |
11 | decode | 解码 | dec | 11 | middle | 中间的 | mid |
12 | encode | 编码 | enc | 12 | make | 制造 | mk |
13 | define | 定义 | def | 13 | message | 消息 | msg |
14 | delete | 删除 | del | 14 | multiplication | 乘法 | mul |
15 | destination | 目标 | dest | 15 | number | 数字 | num |
16 | display | 显示 | disp | 16 | operand | 操作数 | opnd |
17 | division | 除法 | div | 17 | optimization | 优化 | opt |
18 | environment | 环境 | env | 18 | operator | 运算符 | optr |
19 | error | 错误 | err | 19 | packet | 数据包 | pkt |
20 | positon | 正电子 | pos | 20 | subtraction | 减法 | sub |
21 | previous | 先前的 | prev | 21 | table | 表格 | tab |
22 | payload type | 有效负载 | pt | 22 | temporary | 临时 | tmp |
23 | pointer | 指针 | ptr | 23 | total | 合计 | tot |
24 | return | 返回 | ret | 24 | data | 数据 | dat |
25 | record | 记录 | rcd | 25 | value | 值 | val |
26 | receive | 接收 | recv | 26 | time stamp | 时间戳 | ts |
27 | result | 结果 | res | 27 | | | |
28 | source | 来源 | src | 28 | | | |
29 | stack | 堆栈 | stk | 29 | | | |
30 | string | 字符串 | str | 30 | | | |
1.4 变量或函数命名时常用的反义词组
add | remove | | first | last | | add | delete |
begin | end | | get | release | | lock | unlock |
create | destroy | | increment | decrement | | open | close |
insert | delete | | put | get | | min | max |
start | stop | | next | previous | | source | target |
show | hide | | send | receive | | source | destination |
cut | paste | | up | down | | | |
1.5 一些注意的地方
1.5.1 ==
使用此运算符时,把常量写在左边;example:
if (0 == lby_value){;}
1.5.2
1) 相对独立的程序块之间、变量说明之后必须加空行2) 注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面
3) 全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。
4) 在程序块的结束行右方加注释标记,以表明某程序块的结束;
while (index <MAX_INDEX) {} /* end of while (index < MAX_INDEX) */
5) 避免使用不易理解的数字,用有意义的标识来替代。涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的枚举或宏来代替
6) Create 表示创建, Modify 表示修改, Access 表示访问。
7) 一个函数仅完成一件功能,不要设计多用途面面俱到的函数
8) 设计高扇入、合理扇出(小于 7)的函数。扇出是指一个函数直接调用(控制)其它函数的数目,而扇入是指有多少上级函数调用它。
9) 循环体内工作量最小化
1.6 注释
相关文章推荐
- Linux下C语言编程基础知识--gcc编译器的使用、MakeFile文件的编写
- 黑马程序员—Java语言基础(人机交互方式、Java语言介绍、环境变量配置、Hello World程序编写)
- 编写一个以C 语言为基础的DSP程序
- 编写一个俄罗斯方块,外加文档设计。结束C语言基础学习。
- Java语言基础-5.编程风格
- 易语言基础教程之简单代码的编写
- 用java基础语言编写一个班级学生管理系统
- Java语言基础系列之1--用IDEA编写HelloWorld
- Linux下C语言编译基础及makefile的编写
- 【语言处理与Python】4.3风格的问题/4.4函数:结构化编程的基础/4.5更多关于函数
- 编写一个以C 语言为基础的DSP程序
- C++程序设计语言编程风格演变史
- Oracle PL/SQL语言基础
- [转贴]Oracle PL/SQL语言基础
- Linux 下 C 语言编程基础知识
- 怎样编写支持多国语言的程序, 让它能够根据所运行的操作系统自动显示相应的文字。
- C语言程序设计基础讲座之数组
- DirectX 9高层着色语言介绍2 —— 语言基础(1)
- C++程序设计语言编程风格演变史
- 修改网络游戏秘籍—设计游戏外挂编写基础