C语言语法规范
对于C语言的一些规范,总结了网上比较常见的,小白新手可以打印出来,反复看,希望大家的代码都可以美如诗!!
1.函数定义
如何使用花括号{}
首先每个函数的定义和说明都应该单独起行,函数名和函数体的花括号应该各占一行,并且在函数体结尾的花括号后面,加上注释,代表该函数是否结束。
示范如下:函数声明
void fun_test(int val)
{
}/*fun_test*/
2.空格与空格的使用
下列则是需要加空格的场合
- 在逗号后面和语句中间的分号后面加,如
int i, j, k; for(i = 0; i < n; i++) k = fun_test(i);
- 在运算符的两边各留一个空格加,如
a > b; a >= b; a = b; a >> 1;
- 在关键字两侧加,如
if (a == b) //如果不加则如下所示,对比同上写法,是否感觉如上写法更具美观和直观。 if(a == b)
- 在类型与指针说明符指针加,如
char *p==;
不加空格的场合
- 在结构体成员引用符号 . 和 -> 左右不能加
pStud->name, student.id - 不在行尾添加空格或Tab
- 函数名在左括号之间不能加,如
fun_test(...)
- 指针说明符*与变量名之间不要加空格
int *p; 不要写成 int * p;
- 符合运算符中间不能加空格(会导致语法错误)
a + = b; a < = b; 都是错误的
那什么时候该换行还是空格
~函数的变量说明与执行语句之间加上换行
~每个函数内的主要功能块之间用换行区别开来
~不要在一行中写多条语句
int main(void)
{
int i = 0;
int sum = 0; //变量说明
for(i = 10; i > 0; i--) //执行代码
{
sum += i;
}
}
3.缩进格式
缩进
一般用Tab键,一个Tab 4个空格间距
4.嵌套语句块的使用格式
遇到if, switch, for, 花括号的左括号应该单独起一行,与关键字对齐,可以使程序结构更清晰明了,避免出错。
-
即使语句块中只有一句语句,也建议用花括号包括
-
对于比较长的块,在末尾的花括号内加上注释,以表示该语言块结束
if (val != 0) { if (val > max) { max = val; } } else { printf("error-- val is invalid\r\n"); } /* if (val != 0) */
5.注释规范
5.1 书写规范
- 注释必须清晰,准确描述内容。
- 对于代码中复杂部分,必须加以注释说明,且注释量要适中。
- 注释内容尽量采取英文,中文的话,不同编译器打开,可能由于格式不同,导致中文乱码,对于工程较大的情况来说,这无疑会很致命。
- 注释应该写在要说明的内容之前,而不是在其后面。(你细品,假设一个很大的函数,你看完才看到后面的注释,你会是什么心情)
5.2 注释风格
-
强调注释
/*
* ***********************************
* 强调注释
* ***********************************
*/ -
块注释
/**/
-
单行注释
/* */ 建议还是用这个
// 用这个比如后期需要再加注释,导致太长,换行还需要再加,格式又得重新调整,会比较麻烦
5.3何时需要注释
- 假如函数或变量名,不足以说明其用途,这个时候就需要用注释来说明了。
- 如果为了提高性能,采取某种语法或者方式使代码难以理解,更需要使用注释加以说明。
- 对于一个较长的程序段落,也需要加以注释说明。
- 代码中调用某些复杂算法,或者库,建议注明。
- 调试代码时发现某段落容易出错,也应该注明。
6.命名规范
6.1 常量、变量
- 常量用大写字母表示
#define NUM 10 #define MAX_NUM 20 //多个单词用_连接
- 变量定义
2.1 (具体可以百度到对应的命名规范,如驼峰命名法,帕斯卡命名法、匈牙利命名法)
2.2 不要使用拼音去命名。
2.3 使用缩写时,应使用约定成俗的,而不是自己编造的。
2.4 多个单词组成的变量名,除了第一个单词外,其他单词首字母最好大写,如gUserData;
6.2 函数命名
最好一眼能让人读懂函数的用途
其他小技巧
- 函数一般情况,应该少于100行
- 函数定义一定要包含返回类型
- 指针变量要初始化或置为NULL
看都看到这了,麻烦各位看官老爷给个点赞关注,后面会继续分享,持续补充,有什么更好的建议,评论区讨论