任何一种程序设计语言都具有特定的语法规则和规定的表达方法。一个程序只有严格按照语言规定的语法和表达方式编写,才能保证编写的程序在计算机中能正确地执行,同时也便于阅读和理解。
为了了解C语言的基本程序结构,我们先介绍几个简单的C程序。
这是一个最简单的C程序,其执行结果是在屏幕上显示一行信息:
RUN <enter>
This is a sample of c program.
本程序的执行过程是:
• 程序从m a i n ( )处开始。
• 变量a代表一个整数,并且初始值为3。
• 执行程序(函数)p r o c ( );屏幕上显示H e l l o,\ n为转义字符,代表换行的意思。
• 执行程序(函数)f u n c ( );并将结果赋予a,此时,a的值为2。
• 屏幕上显示“This is a sample of c program.”。
程序执行的结果是在屏幕显示两行信息:
R U N <enter>
H e l l o .
This is a sample of c program.
程序中/ * . . . . . * /表示对程序的说明(称为注释),不参与程序的运行。注释文字可以是任意字符,如汉字、拼音、英文等。
本程序的功能是对从键盘输入的长方体的长、宽、高三个整型量求其体积的值。程序运行的情况如下:
R U N ↵
5 , 8 , 6 ↵
v = 240
在本例中,m a i n函数在调用v o l u m e函数时,将实际参数x、y、z的值分别传送给v o l u m e函数中的形式参数a、b、c。经过执行v o l u m e函数得到一个结果(即v o l u m e函数中变量p的值)并把这个值赋给变量v。
从上面程序例子,可以看出C程序的基本结构。
C程序为函数模块结构,所有的C程序都是由一个或多个函数构成,其中必须只能有一个主函数m a i n ( )。程序从主函数开始执行,当执行到调用函数的语句时,程序将控制转移到调用函数中执行,执行结束后,再返回主函数中继续运行,直至程序执行结束。C程序的函数是由编译系统提供的标准函数(如p r i n t f、s c a n f等)和由用户自己定义的函数(如p r o c、f u n c、v o l u m e等)。虽然从技术上讲,主函数不是C语言的一个成分,但它仍被看做是其中的一部分,因此,“m a i n”不能用作变量名。
函数的基本形式是:函数类型函数名(形式参数)形式参数说明;
{
数据说明部分;
语句部分;
}
其中:函数头包括函数说明、函数名和圆括号中的形式参数(如int volume(a,b,c)),如果函数
调用无参数传递,圆括号中形式参数为空(如void proc()函数)。形式参数说明指定函数调用传递参数的数据类型(如例1 . 3中语句int a,b,c;)。函数体包括函数体内使用的数据说明和执行函数功能的语句,花括号{和}表示函数体的
开始和结束。
1.3.2 函数库和链接
从技术上讲,纯粹由程序员自己编写的语句构成C语言程序是可能的,但这却是罕见的。因为所有的C编译程序都提供能完成各种常用任务的函数—函数库(如p r i n t f、s c a n f等)。C编译程序的实现者已经编写了大部分常见的通用函数。当我们调用一个别人编写的函数时编译程序“记忆”它的名字。随后,“链接程序”把我们编写的程序同标准函数库中找到的目标码结合起来,这个过程称为“链接”。
保存在函数库中的函数是可重定位的。这意味着其中机器码指令的内存地址并未绝对地确定, 只有偏移量是确定的。当把程序与标准函数库中的函数相链接时,内存偏移量被用来产生实际地址。有关重定位的详细内容,请查阅其他技术书籍。
编写程序时用到的函数,许多都可以在标准函数库中找到。它们是可以简单地组合起来的程序构件。编写了一个经常要用的函数之后,可将其放入库中备用。
1.3.3 开发一个C程序
开发一个C程序,包括以下四步:
1) 程序设计程序设计亦称程序编辑。程序员用任一编辑软件(编辑器)将编写好的C程序输入计算机,并以文本文件的形式保存在计算机的磁盘上。编辑的结果是建立C源程序文件。C程序习惯上使用小写英文字母,常量和其他用途的符号可用大写字母。C语言对大、小写字母是有区别的。关键字必须小写。
2) 程序编译编译是指将编辑好的源文件翻译成二进制目标代码的过程。编译过程是使用C语言提供的编译程序(编译器)完成的。不同操作系统下的各种编译器的使用命令不完全相同,使用时应注意计算机环境。编译时,编译器首先要对源程序中的每一个语句检查语法错误,当发现错误时,就在屏幕上显示错误的位置和错误类型的信息。此时,要再次调用编辑器进行查错修改。然后,再进行编译,直至排除所有语法和语义错误。正确的源程序文件经过编译后在磁盘上生成目标文件。
3 ) 链接程序编译后产生的目标文件是可重定位的程序模块,不能直接运行。链接就是把目标文件和其他分别进行编译生成的目标程序模块(如果有的话)及系统提供的标准库函数链接在一起,生成可以运行的可执行文件的过程。链接过程使用C语言提供的链接程序(链接器)完成,生成的可执行文件存在磁盘中。
4) 程序运行生成可执行文件后,就可以在操作系统控制下运行。若执行程序后达到预期目的,则C程序的开发工作到此完成。否则,要进一步检查修改源程序,重复编辑—编译
—链接—运行的过程,直到取得预期结果为止。
大部分C语言都提供一个独立的开发集成环境,它可将上述四步连贯在一个程序之中。本书所涉及的程序全部在Turbo C环境中进行。
1.3.4 C语言的关键字
表1 - 2列举了3 2个关键字,它们与标准C句法结合,形成了程序设计语言C。
C语言的关键字都用小写字母。C语言中区分大写与小写,e l s e是关键字,“E L S E”则不是。在C程序中,关键字不能用于其它目的,即不允许将关键字作为变量名或函数名使用。