C语言程序书写规范

清晰的代码结构和书写风格确实是一种美。

1.符号命名规则

标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成。
并且首字符不能是数字,但可以是字母或者下划线
不能把C语言关键字作为用户标识符
标识符长度是由机器上的编译系统决定的,一般的限制为8字符(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。
标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大写。
C语言把标识符分为两大类:关键字和标识符。标识符大类分为预定义标识符和用户自定义标识符。
预定义标识符是C语言中系统预先定义的标识符,如系统类库名、系统常量名、系统函数名。预定义标识符具有见字明义的特点,如函数“格式输出”(英语全称加缩写:printf)、“格式输入”(英语全称加缩写:scanf)、sin、isalnum等等。预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原意,使用不当还会使程序出错。

1.所有宏定义、枚举常数和const变量,用大写字母命名,复合词用下划线隔开

       #define LENGTH 10

       #define MAX_LEN 50

2.函数名是复合词的,第一个词采用全部小写,随后每一个单词采用第一个字母大写,其余小写。
3.循环变量采用i,j,k。
4.全局变量词头用g_。
5.临时变量词头用tmp_.。

2.代码书写

花括号
if、else、for、while、do 等语句自占一行,执行语句不得紧跟其后。此外,非常重要的一点是,不论执行语句有多少行,就算只有一行也要加{},并且遵循对齐的原则,这样可以防止书写失误。
对齐,成对书写。

int a = 10;

if (a < 10)

{

       printf("a is less than 10.\n");

}

else

{

       printf("a is greater than 10.\n");

}

加空格的情况
在逗号后面和语句中间的分号后面加上空格。

       int i, j, k;

       for (i = 0; i < n; i++) //for后面括号前面空一格

在双目运算符的两边各留下一个空格。

       a = b;

关键字两侧加上空格

       if (1)

       for (i = 0; i < 100; i++);

不加空格的情况
在结构体成员引用符号.和->左右两边不加空格

       struct Student

       {

              int id;

              char name[20];

       };

       struct Student a, *p=&a;

       a.id = 101;

       printf("%d", p->id);

函数名与左括号不加空格

       int fun(void);

复合运算符中间不能加空格,否则会产生语法错误。

       a + = b,  a < = b 都是错误的

折行的使用
每行的长度不要超过80各字符,当程序太长时,应该分行书写。
当需要把一个程序行的内容分成几行书写时,操作符一个放在行末

       int flag = 0;

       if ((ch >= 'a' && ch <= 'z') &&

              (ch >= 'A' && ch <= 'Z'))

              flag = 1;

3.注释书写规范

注释风格
在一般情况下,源程序有效注释量必须在 20% 以上。虽然注释有助于理解代码,但注意不可过多地使用注释。
每一条宏定义的右边必须要有注释,说明其作用。

代码块注释

//...

code

 

函数注释

/**

 * 返回数组中最大元素的下标

 * @param arr int类型数组

 * @param size 数组的大小

 * @return 返回数组最大元素的下标

 */

int find_max_index(int arr[], int size)

{

}

4.空行

空行起着分隔程序段落的作用。空行得体将使程序的布局更加清晰。空行不会浪费内存,虽然打印含有空行的程序会多消耗一些纸张,但是值得。
规则一:定义变量后要空行。尽可能在定义变量的同时初始化该变量,即遵循就近原则。如果变量的引用和定义相隔比较远,那么变量的初始化就很容易被忘记。若引用了未被初始化的变量,就会导致程序出错。
规则二:每个函数定义结束之后都要加空行。
总规则:两个相对独立的程序块、变量说明之后必须要加空行。比如上面几行代码完成的是一个功能,下面几行代码完成的是另一个功能,那么它们中间就要加空行。这样看起来更清晰。

5.缩进

缩进是通过键盘上的4个空格键实现的,缩进可以使程序更有层次感。
原则是:如果地位相等,则不需要缩进;如果属于某一个代码的内部代码就需要缩进。

 

C语言的循环语句补充

本文主要介绍C语言的循环语句,即while语句、do-while语句和for语句。

循环语句分为两大类,当型循环(while、for)和直到型循环(do-while)。我们可以大概地从分类中理解两类循环地不同。

一、当型循环

1、while循环:

语法:

while(循环控制式)

{

语句序列;

}

当循环控制式为真时(结果为非0),执行循环体(即大括号以内的语句)。

先判断再执行,故称为“当型循环”。

2、for循环

语法:

for(初始化表达式;循环控制表达式;增值表达式)

{

}

初始化表达式:对变量值初始化

循环控制表达式:为真(非0)则执行语句

增值表达式:可以理解为while循环中的”语句序列“,作为循环中执行的内容。

先判断再执行,故称为“当型循环”。

二、直到型循环

do-while循环

语法:

do

{

语句序列;

}

while(循环控制表达式)

执行循环体,直到循环控制表达式为假(结果为0)。

先执行在判断,故称为“直到型语句”。

三、break语句、continue语句

为提高循环语句的实用性,C语言加入了break、continue来控制循环。

1、break:

跳出循环。

2、continue:

跳过本次循环,直接进入下次循环。

3、两者的区别
(1)break语句是终止本层循环(但不影响下一次循环),而continue语句并没有使本层循环终止。

(2)break是直接跳出本层循环体,然后继续执行本层循环体外后面的代码,continue是立即跳到本层循环体进行重新条件判断的,且并不往下执行本层循环体后面的代码。

四、goto语句

C语言中的goto语句是一种跳转语句,它可以让程序无条件地跳转到指定的标签位置继续执行。goto语句的语法格式如下:

goto 标签名;

.......

标签名:

其中,标签名是一个用户自定义的标识符,后面跟着一个冒号。在需要跳转的地方使用goto关键字,后面跟上标签名,就可以实现跳转。需要注意的是,goto语句通常不推荐使用,因为它可能导致程序结构混乱,难以维护。

posted on 2024-03-10 16:47  一郎哥哥  阅读(55)  评论(0编辑  收藏  举报

导航