c语言代码编写的格式?

c语言代码编写的格式?,第1张

C语言 程序代码编写规范

(初级程序员 讨论版)

前言

一个好的程序编写规范是编写高质量程序的保证。清晰、规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性。

说明

l 本文档主要适用于刚刚开始接触编程的初学者。

l 对于具有一定工程项目开发经验的程序员,建议学习C语言程序代码编写规范—高级版。

目录

1 代码书写规范

2 注释书写规范

3 命名规范

4 其它一些小技巧和要求

1 代码书写规范

1.1函数定义

花括号: { }

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

范例1:函数的声明

void matMyFunction(int n)

{

……

} /* matMyFunction*/

1.2空格与空行的使用

要加空格的场合

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

int i, j, k

for (i = 0i <ni++)

result = func(a, b, c)

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

a >ba <= b i = 0

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

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

char *szName

不加空格的场合

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

pStud->szName, Student.nID

l 不在行尾添加空格或Tab

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

func(…)

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

int *pInt不要写成: int * pInt

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

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

空行与换行

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

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

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

范例2:空行与换行

int main()

{

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

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

{

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

{

nSum += i

}

}

}

1.3缩进的设置

根据语句间的层次关系采用缩进格式书写程序,每进一层,往后缩进一层

有两种缩进方式:1,使用Tab键;2,采用4个空格。

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

1.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)

}

1.5嵌套语句(语句块)的格式

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

范例3:嵌套语句格式

if (value <max)

{

if (value != 0)

{

func(value)

}

}

} else {

error("The value is too big.")

} /* if (value <max) */

2 注释书写规范

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

2.1注释风格

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

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

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

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

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

范例4:几种注释样式

/*

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

* 强调注释

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

*/

/*

* 块注释

*/

/* 单行注释 */

//单行注释

int i/*行末注释*/

2.2何时需要注释

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

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

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

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

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

3 命名规范

3.1常量、变量命名

l 符号常量的命名用大写字母表示。如:

#define LENGTH 10

l 如果符号常量由多个单词构成,两个不同的单词之间可以用下划线连接。如:

#define MAX_LEN 50

变量命名的基本原则:

l 可以选择有意义的英文(小写字母)组成变量名,使人看到该变量就能大致清楚其含义。

l 不要使用人名、地名和汉语拼音。

l 如果使用缩写,应该使用那些约定俗成的,而不是自己编造的。

l 多个单词组成的变量名,除第一个单词外的其他单词首字母应该大写。如:

dwUserInputValue。

3.2函数命名

函数命名原则与变量命名原则基本相同。对于初学者,函数命名可以采用“FunctionName”的形式。

4 其它一些小技巧和要求

l 函数一般情况下应该少于100行

l 函数定义一定要包含返回类型,没有返回类型加void

l 写比较表达式时,将常量放在左边

10 == n

NULL != pInt

l 指针变量总是要初始或重置为NULL

l 使用{}包含复合语句,即使是只有一行,如:

if (1 == a)

{

x = 5

}

http://home.ustc.edu.cn/~danewang/c/CodingStandards.html

c语言最基本的格式,可以参考最基本的hello

world程序。hello

world程序虽然小,但是几乎包含和计算机软件技术相关的各种基础知识。

#include

int main()

{

printf("hello world\n")

return 0

}1、#include

预处理 *** 作,谈到预处理 *** 作,就需要了解c语言编译器生成二进制可执行文件的过程,一般为预处理阶断、编译阶断、汇编阶断、链接阶断。

预处理阶断:进行预处理 *** 作,有预处理器来完成。

编译阶断:有c语言编译器完颤嫌做成,它负责将c语言源码转换成汇编指令。要深入下去就是编译原理知识。

汇编阶断:有汇编器完成,它负责将汇编指令转换成二进制机器码。要深入下去就是汇编语言以及反汇编、调试技术的内容

链接阶断:有链接器完成,它负责将二进制机器码装载成一个可执行文件,如果要深入的探索下去,就是windows或者linux平台上的库编程以及相可执行文件格式的学习,比如windows平台的pe文件格式,如果把pe格式搞明白,自己可以直接用二进制编写一个程序,这没有不可思议,实际上是网上有这方面的帖子。

2、int

main()

每个c语言程序有且只有一个main函数,一般的教科书茄衡上只有一句:“有系统调用main函数”,

那么到底

是系统中的谁调用了此函数,如此深入下去,可以加深对应用程序执行的理解,实际上在linux平台上有,_start()函数调用main函数,在windows平台上有启动函数maincrtstartup函数来调用main函数。

3、printf("hello

world\n")

这是c语言的成功之处之一,c语言将输入、输出 *** 作设置为一个标准,这大大方便了应用者宏程序开发,也提高了应用程序的可称植性。自己有兴趣可以深入的去探索。

4、return

0

return

0,返回值的0表示程序执行成功了。

你的错误是没加头文件,因为使用printf需要调用库函数 stdio.h。

符号名包括模块名、常量名、标号名、子程序名等。这些名字应该能反映它所代表的实际东西,具有一定的意义,使其能够见名知义,有助于对程序功能的理解。命名采用匈牙利命名法。具体规则如下:

(1)所有宏定义、枚举常数和const变量,用大写字母命名。在复合词里用下划线隔开每个词。

(2)复合词中每个单词的第一个字母大写。除了规则5.1.1.1以外,避免使用下划线。

(3)类、类型定义和枚举型名的第一个字母大写。

(4)函数名是复合词的,第一个词采用全部小写,随后每个单词采用第一个字母大写,其它字母小写方式;如果是单个词的,采用全部小写方式。

(5)循环变量可采用i, j, k等,不受上述规则限制。

(6) 类的成员变量应采用m_开头。

(7) 全局变量词头为g_ 。

(8) 临时变量词头为tmp_ 。

(9) 对结构体内的变量命名, 遵循变量的具体含义命名原则

(10)用小写字母的前缀表示变量的类型,前缀的下一个字母用大写。

——文件之中不得存在无规则的空行,比如说连续十个空行。

一般来讲函数与函数之间的空行为2-3行;

在函数体内部,在逻辑上独立的两个函数块可适当空行,一般为1-2行。

——程序编写首先应考虑清晰性,不要刻意追求技巧性而使得程序难以理解。

——每行长度尽量避免超过屏幕宽度,应不超过80个字符。

——除非对效率有特殊要求,编写程序要作到清晰第一,效率第二。

——尽可能使用函数库。

——尽量用公共过程或子程序去代替重复的功能代码段。要注意,这个代码应具有一个独立的功能,不要只因代码形式一样便将其抽出组成一个公共过程或子程序。

——使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。如将 x=a*b/c*d 写成 x=(a*b/c)*d可避免阅读者误解为x=(a*b)/(c*d)。

——避免不必要的转移。

——避免采用过于复杂的条件测试。

——避免过多的循环嵌套和条件嵌套。

——建议不要使?*=,^=, /=等运算符。

——一个函数不要超过200行。一个文件应避免超过2000行。

——尽量避免使用go to语句。

——避免采用多赋值语句,如x = y = z

——不鼓励采用?: *** 作符,如z = (a>b)?a:b

——不要使用空的if else 语句。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12374751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存