通过上一节的三个C程序示例,我们可以看出C语言程序的结构具有以下特点:
(1). 一个程序由一个或多个源程序文件组成。 较小的程序通常只包含一个源程序文件。 例如,例1和例2在一个源程序文件中只有一个函数(主函数),例3有两个函数属于同一个源程序文件。 一个源程序文件可以包含3部分:
A。 预处理指令。 比如#(还有一些其他的预处理指令,比如#等)。 在C编译系统“翻译”源程序之前,“预处理器”首先对预处理指令进行预处理。 对于#指令,它读取stdio.h头文件的内容并将其放在#命令行中,替换#。 预处理得到的结果与程序的其他部分一起构成完整的最终可以编译的源程序。 然后编译器对源程序进行正式编译,得到目标程序。
b. 全球宣言。 即函数外的数据声明。 例如,您可以输入“int a, b, sum;” 在示例 2 的程序中的 main 函数之前。 这是一个全球性的宣言。 在函数外部声明的变量称为全局变量。 如果变量在程序开头(定义函数之前)声明,则它在整个源程序文件的范围内有效。 函数中声明的变量是局部变量,仅在函数作用域内有效。
C。 函数定义。 例如,例1、例2、例3中的main函数以及例3中的max函数用于实现某些功能。 当调用这些函数时,函数定义中指定的功能就完成了。
(2)函数是C程序的主要组成部分。 程序的几乎所有工作都是由各个函数完成的。 函数是C程序的基本单元。 在一个设计良好的程序中,每个函数都是用来实现一个或几个特定的功能。 编写C程序的主要工作就是一一编写函数。
AC语言程序由一个或多个函数组成,其中必须包含一个主函数(有且只有一个主函数)。 例1和例2中的程序仅由一个main函数组成,例3中的程序由一个main函数和一个max函数组成。 它们组成一个源程序文件,编译时统一编译整个源程序文件。
一个小程序只包含一个源程序文件,一个源程序文件包含多个函数(包括一个主函数)。 当程序规模很大时,它包含大量的函数。 如果所有函数都放在同一个源程序文件中,则文件太大,不方便编译和调试。 为了方便调试和管理,一个程序可以包含多个源程序文件,每个源程序文件又包含若干个函数。 源程序文件是一个程序模块,即一个程序被划分为若干个程序模块。
编译时以源程序文件作为对象。 将各个源程序文件分别编译并得到相应的目标程序后,再将这些目标程序连接成统一的二进制可执行程序。
C语言的这些特点使得很容易实现程序模块化。
程序中调用的函数可以是系统提供的库函数(如scanf函数),也可以是用户根据需要自行编译设计的函数。 C的函数库非常丰富。 ANSIC 建议提供 100 多个标准库函数。 不同的C编译系统除了提供标准库函数外,还添加了一些其他专门的函数。 例如,Turbo C提供了300多个库函数。 不同编译系统提供的库函数数量和功能并不完全相同。
(3) 函数由两部分组成。
A。 函数头。 即函数的第一行,包括函数名、函数类型、函数属性、函数参数(形参)名称、参数类型。
例如,在示例 3 中,max 函数的标头为
函数名后面必须有一对括号,其中写有函数参数名称及其类型。 如果函数没有参数,可以在括号内写void或者空括号,如:
int 主函数(无效)
或者
int main()
b. 函数体。 即函数头下方大括号内的部分。 如果在函数中包含多层大括号,则最外面的一对大括号是函数体的范围。
函数体一般包括以下两部分:
在某些情况下,可能没有声明部分,甚至既没有声明部分也没有执行部分。 喜欢:
无效转储()
{ }
它是一个空函数,什么也不做,但它是合法的。
(4)程序总是从主函数开始执行,无论主函数在整个程序中的位置如何(主函数可以放在程序的开头,也可以放在程序的末尾,也可以放在某些程序之前)函数或其他函数。在函数之后)。
(5)程序中计算机的操作是由函数中的C语句完成的。 赋值、输入输出数据等操作均由相应的C语句实现。 C程序编写格式比较自由。 一行可以写多个语句,多行可以写一个语句,但为了清楚起见,习惯上每行只写一个语句。
(6)。 每个数据声明和语句的末尾必须有一个分号。 分号是 C 语句的重要组成部分。 例如,c=a+b; 分号是必不可少的。
(7)C语言本身不提供输入输出语句。 输入输出操作由库函数scanf等函数执行。 C 实现了输入和输出的“功能化”。 由于输入输出操作涉及特定的计算机设备,用库函数实现输入输出操作可以使C语言本身规模较小,编译程序简单,易于在各种机器上实现,使得程序可移植。
(8) 程序应包含注释。 一个好的、有价值的源程序应该有必要的注释,以增加程序的可读性。
搜索微信公众号【】或扫描下方二维码关注微信公众号。 资深软件工程师帮你一步一步学代码,走上人生巅峰娶白富美!
公众号“巴拉一会儿”带你一步一步敲代码