目录

  • 1 C语言的介绍
    • 1.1 C语言的简单介绍及历史背景
    • 1.2 C语言的特点
    • 1.3 C语言程序的结构分析案例
    • 1.4 C语言程序的结构
    • 1.5 C语言程序的规范
    • 1.6 运行C语言程序的步骤和方法
  • 2 数据类型、运算符与表达式
    • 2.1 C语言的数据类型
    • 2.2 浮点型数据
    • 2.3 变量赋初值
    • 2.4 算数运算符和算数表达式
  • 3 最简单的C程序设计——顺序程序设计
    • 3.1 顺序程序设计
    • 3.2 数据的输入与输出
  • 4 选择结构程序设计
    • 4.1 关系运算符和关系表达式
    • 4.2 逻辑运算符和逻辑表达式
    • 4.3 if语句
    • 4.4 switch语句
  • 5 函数
    • 5.1 函数概念及无参函数的定义
    • 5.2 有参函数的定义
    • 5.3 函数的参数
    • 5.4 函数的返回值及调用
  • 6 循环控制
    • 6.1 While语句及Do...While语句
    • 6.2 用For语句实现循环
    • 6.3 For语句的几点说明
    • 6.4 循环的嵌套
  • 7 数组
    • 7.1 数组及一维数组的定义
    • 7.2 一维数组的引用与初始化
    • 7.3 二维数组
    • 7.4 字符数组
C语言程序的规范


1.代码书写规范

例如:函数定义

花括号: { }

每个函数的定义和说明应该从第1列开始书写。函数名(包括参数表)和函数体的花括号应该各占一行。在函数体结尾的括号后面可以加上注释,注释中应该包括函数名,这样比较方便进行括号配对检查,也可以清晰地看出来函数是否结束。

范例1:函数的声明

void matMyFunction(int n)

{

……

} /* matMyFunction*/

‍2.空格与空行的使用

‍要加空格的场合

  • 在逗号后面和语句中间的分号后面加空格,如:

int i, j, k;

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

result = func(a, b, c);

  • 在二目运算符的两边各留一个空格,如

a > b    a <= b  i = 0

  • 关键字两侧,如if () …, 不要写成if() …

  •  类型与指针说明符之间一定要加空格:

char *szName;

不加空格的场合

  • 在结构成员引用符号.和->左右两加不加空格:

pStud->szName,  Student.nID

  • 不在行尾添加空格或Tab

  • 函数名与左括号之间不加空格:

func(…)

  • 指针说明符号*与变量名间不要加空格:

int *pInt; 不要写成: int * pInt;

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

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

★ 空行与换行

  • 函数的变量说明与执行语句之间加上空行;

  • 每个函数内的主要功能块之间加空行表示区隔;

  • 不要在一行中写多条语句.

范例2:空行与换行

int main()

{

 int i, j, nSum = 0;  //变量说明

 for (i = 0; i < 10; i++)  //执行代码

 {

    for (j = 0; j < 10; j++)

{

    nSum += i;

  }

}

}‍

3.缩进的设置

‍根据语句间的层次关系采用缩进格式书写程序,每进一层,往后缩进一层。有两种缩进方式:1、使用Tab键;2、采用4个空格。

整个文件内部应该统一,不要混用Tab键和4个空格,因为不同的编辑器对Tab键的处理方法不同。‍

4.折行的使用

  • ‍每行的长度不要超过80个字符,当程序行太长时,应该分行书写。

  • 当需要把一个程序行的内容分成几行写时,操作符号应该放在行末。

  • 分行时应该按照自然的逻辑关系进行,例如:不要把一个简单的逻辑判断写在两行上。

  • 分行后的缩进应该按照程序的逻辑关系进行对齐。例如:参数表折行后,下面的行应该在参数表左括号的下方。

范例2:折行的格式

dwNewShape = matAffineTransform(coords, translation,

 rotation);

if (((new_shape.x > left_border) &&

(new_shape.x < right_border)) &&

((new_shape.y > bottom_border) &&

(new_shape.y < top_border)))

{

   draw(new_shape);

}‍

 5.嵌套语句(语句块)的格式

‍ 对于嵌套式的语句--即语句块(如,if、while、for、switch等)应该包括在花括号中。花括号的左括号应该单独占一行,并与关键字对齐。建议即使语句块中只有一条语句,也应该使用花括号包括,这样可以使程序结构更清晰,也可以避免出错。建议对比较长的块,在末尾的花括号后加上注释以表明该语言块结束。

范例3:嵌套语句格式

if (value < max)

{

    if (value != 0)

   {

        func(value);

   }

}

} else {

  error("The value is too big.");

} /* if (value < max) */‍‍

注释必须做到清晰,准确地描述内容。对于程序中复杂的部分必须有注释加以说明。注释量要适中,过多或过少都易导致阅读困难。

C语言中使用一组(/* … */)作为注释界定符。

  • 注释内容尽量用英语方式表述。

  •  注释的基本样式参考范例4。

  • 注释应该出现在要说明的内容之前,而不应该出现在其后。

  •  除了说明变量的用途和语言块末尾使用的注释,尽量不使用行末的注释方式。

范例:几种注释样式

‍/*

* ************************************************

* 强调注释

* ************************************************

*/

/*

* 块注释

*/

/* 单行注释 */

//单行注释

int i; /*行末注释*/‍

  •  如果变量的名字不能完全说明其用途,应该使用注释加以说明。

  •  如果为了提高性能而使某些代码变得难懂,应该使用注释加以说明。

  •  对于一个比较长的程序段落,应该加注释予以说明。如果设计文档中有流程图,则程序中对应的位置应该加注释予以说明。

  • 如果程序中使用了某个复杂的算法,建议注明其出处。

  • 如果在调试中发现某段落容易出现错误,应该注明。