比较完美的C语言编码风格!
2020-05-11 本文已影响0人
逐风墨客
C语言编码风格.png
每个人心中都有一套自己编码风格,好的编码风格能让人一看就懂写的啥东西,有啥意义,也方便维护程序。如果是初学者,变量命名,最好采用匈牙利风格,能迅速知道这个变量的类型。
以下,我打算使用的变量命名风格:
数据类型 前缀 后缀 举例
void v void *p_vVarName
bool b bool bVarName
char c char cVarName
unsigned char uc unsigned char ucVarName
short s short sVarName
unsigned short us unsigned short usVarName
int i int iVarName
unsigned [int] ui unsigned int uiVarName
long l long lVarName
unsigned long ul unsigned long ulVarName
long long ll long long llVarName
unsigned long long ull unsigned long long ullVarName
float f float fVarName
double d double dVarName
long double ld long double ldVarName
register reg_ register int reg_iVarName
const cst_ const int cst_iVarName
volatile vlt_ volatile int vlt_iVarName
static s_ static int s_iVarName
extern g_ extern int g_iVarName
数组 _a int iVarName_a[MAX]
指针 p_ int *p_iVarName
struct st或pst struct PERSON stPERSON 或 struct PERSON *pstPERSON
union un或pun union HOUSE unHOUSE 或 union HOUSE *punHOUSE
enum em或pem enum WEEK emWEEK 或 enum WEEK *pemWEEK
C语言编码常见单词缩写:
编号 | 英文 | 缩写 | 中文 |
---|---|---|---|
01 | addition | add | 添加 |
02 | answer | ans | 回答 |
03 | argument | arg | 参数 |
04 | array | arr | 数组 |
05 | average | avg | 平均数 |
06 | buffer | buf | 缓冲区 |
07 | capture | cap | 捕捉 |
08 | check | chk | 检查 |
09 | clock | clk | 时钟 |
10 | column | col | 列 |
11 | command | cmd | 命令 |
12 | compare | cmp | 比较 |
13 | configuration | cfg | 配置 |
14 | control | ctl | 控制 |
15 | count | cnt | 计数 |
16 | data | dat | 数据 |
17 | decode | dec | 解码 |
18 | encode | enc | 编码 |
19 | define | def | 定义 |
20 | delete | del | 删除 |
21 | destination | dest | 目标 |
22 | display | disp | 显示 |
23 | division | div | 除法 |
24 | environment | env | 环境 |
25 | error | err | 错误 |
26 | float | flt | 浮点 |
27 | frequency | freq | 频率 |
28 | header | hdr | 数据头 |
29 | index | idx | 索引 |
30 | image | img | 图片 |
31 | increment | inc | 自增 |
32 | initalize | init | 初始化 |
33 | iteration | itr | 重复 |
34 | length | len | 长度 |
35 | memory | mem | 内存 |
36 | middle | mid | 中间的 |
37 | make | mk | 制造 |
38 | message | msg | 消息 |
39 | multiplication | mul | 乘法 |
40 | number | num | 数字 |
41 | operand | opnd | 操作数 |
42 | operator | optr | 运算符 |
43 | optimization | opt | 优化 |
44 | packet | pkt | 数据包 |
45 | payload type | pt | 有效负载 |
46 | pointer | ptr | 指针 |
47 | positon | pos | 坐标 |
48 | previous | prev | 先前的 |
49 | receive | recv | 接收 |
50 | record | rcd | 记录 |
51 | register | reg | 寄存器 |
52 | result | res | 结果 |
53 | return | ret | 返回 |
54 | source | src | 来源 |
55 | stack | stk | 堆栈 |
56 | string | str | 字符串 |
57 | subtraction | sub | 减法 |
58 | synchronize | sync | 同步 |
59 | table | tab | 表格 |
60 | temporary | tmp | 临时 |
61 | time stamp | ts | 时间戳 |
62 | total | tot | 合计 |
63 | value | val | 值 |
其它注意事项:
- 常用循环变量
i,j,k
就不用变量前缀来修饰了,别的字符循环变量名尽量不要使用。 - 所有宏定义,全用大写字母命名,用下划线分割单词。(例:
#define FILE_PATH /usr/tmp
) - C语言毕竟是面向过程的编程,C语言函数定义尽量全部使用小写字母,用下划线分割单词,以区别面向对象的编程。(例:
void set_name(void) 或 char *get_name(char *name)
) - 使用
==
此运算符时,把常量写在左边。(例:if (0 == iVal)
) - 像
if、for、while
等关键字之后应留一个空格再跟左括号(
,以突出关键字。 - 函数名之后不要留空格,紧跟左括号
(
,以与关键字区别。 - 左括号
(
向后紧跟, 右括号)
、逗号,
、分号;
向前紧跟,紧跟处不留空格。 - 逗号
,
之后要留空格,如Function(x, y, z)
。如果分号;
不是一行的结束
符号,其后要留空格,如for (initialization; condition; update)
。 - 赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,
如“=
” 、 “+=
” “>=
” 、 “<=
” 、 “+
” 、 “*
” 、 “%
” 、 “&&
” 、 “||
” 、 “<<
”、“^
”等二元操作符的前后应当加空格。 - 一元操作符如“
!
” 、 “~
” 、 “++
” 、 “--
” 、 “&
” (地址运算符)等前后不加空格。 - 像“
[]
” 、 “.
” 、 “->
”这类操作符前后不加空格。 - 对于表达式比较长的
for
语句和if
语句,为了紧凑起见可以适当地去
掉一些空格,如for (i=0; i<10; i++)
和if ((a<=b) && (c<=d))