C 语言程序的结构组成
(1)一个程序由一个或多个源程序文件组成。
一个源程序文件中有一个或几个函数( 如main 函数,调用子函数)。
在一个源程序文件中可以包括3个部分:
①预处理指令。如#include < stdio.h >(还有一些其他预处理指令,如#define 等)。 C 编译系统在对源程序进行翻译前,先由一个预处理器(也称预处理程序、预编译器)对预处理指令进行预处理,对于# include < stdio.h >指令来说,就是将 stdio.h 头文件的内容读进来,取代# include < stdio . h >。由预处理得到的结果与程序其他部分一起组成一个完整的、可以用来编译的最后的源程序,然后由编译程序对该源程序正式进行编译,才得到机器可运行的目标程序。
②全局变量和局部变量
在函数之外进行的数据声明。如“ int a ,b,sum ;”,放到 main 函数的前面,这就是全局声明,在函数外面声明的变量称为全局变量。如果是在程序开头(定义函数之前)声明的变量,则在整个源程序文件范围内有效。在函数中声明的变量是局部变量,只在函数范围内有效。
③如 main 主函数和调用函数,用来指定每个函数的功能。在调用这些函数时,会完成函数定义中所指定的功能。
(2)函数是 C 程序的主要组成部分。
程序的几乎全部工作都是由各个函数分别完成的,
函数是 C 程序的基本单位
。每个函数都用来实现一个或几个特定的功能。编写 C 程序的工作主要就是编写一个个函数。一个 C 语言程序是由一个或多个函数组成的,其中必须包含一个 main 主函数,且只能有一个 main主函数,也可能有几个调用函数组成,它们组成一个源程序文件,在进行编译时对整个源程序文件统一进行编译。
一个小程序只包含一个源程序文件,在一个源程序文件中包含若干个函数(其中有一个 main 函数)。当程序规模较大时,所包含的函数的数量较多,如果把所有的函数都放在同一个源程序文件中,则此文件显得太大,不便于编译和调试。
为了便于调试和管理,可以使个程序包含若干个源程序文件,每个源程序文件又包含若干个函数。一个源程序文件就是一个程序模块,即将一个程序分成若干个程序模块。
编程可以面向对象建立程序模块,也可以面向过程建立程序模块。作为C语言是面向过程的程序设计语言,而C++面向对象的程序设计语言。
C语言程序编辑
什么是面向过程?
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向过程的设计思路就是首先分析问题的步骤。把每个步骤用分别的功能函数来实现,问题可以解决了,比较麻烦费时。
面向过程思想是一种以过程为中心的编程思想,是以什么正在发生为主要目标进行编程。把解题的过程看做是数据被加工的过程,这种程序设计语言称为面向过程的程序设计语言。常用的面向过程的语言有C、Fortran、Basic、Pascal等。使用这类编程语言,程序设计者可以把主要精力集中在解决问题的思路和方法上。
如果要改动面向过程的程序设计,那么从输入到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整,可移植性差。
如果是面向对象的话,只用改动对象就行了。
什么是面向对象?
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。
程序员每天的工作是使用自己熟悉的语言来解决一个又一个问题,那在解决问题的时候,有两种方式,第一种方式要解决这个问题,自己一步一步把这个问题解决掉,自己来逐步的解决一个问题。第二种方式就是面向对象的这种解决问题的方法,用面向对象来解决一个问题的时候,通常我们要首先考虑由谁(这里指对象,而其具备解决该问题能力)来做。找一个别人来帮助自己做事情,而我们找到了这个对象,已经具备了解决这个问题的能力。这个对象做完之后,问题也同样得到了解决。这个就是面向对象的解决方法。第一种方式自己逐步来解决问题的每一个步骤,第二种方式我们来找一个对象替自己做事情,对象又具有做这件事情的能力。如果开发程序,当然更倾向于第二种方式。找个对象来完成,这个思路就是面向对象的思维方式。在做事情的时候,找一个具有能力的对象,帮我们把问题解决掉就好了。这个就是从思维方式角度所谓面向对象的概念。在工作中遇到不同的问题,就找不同的对象来帮我们解决问题就可以。
面向对象的思维方式,如c++语言,就是在做事情之前,先找一个具有能力的对象,帮我们来解决问题。能够帮我们解决问题的对象,并且使用对象已经具有的能力,通常就可以快速的把日常开发中需要解决的问题搞定了。
C语言作为面向过程的语言,不是面向对象语言。在进行编译时是以源程序文件为对象进行的。在分别对各源程序文件进行编译并得到相应的目标程序后,再将这些目标程序连接成为一个统一的二进制的可执行程序。 C 语言的这种特点便得容易实现程序的模块化。在程序中被调用的函数,可以是系统提供的库函数(例如 printf 和 scanf 函数),也可以是用户根据需要自己编制设计的函数(例如max 调用子函数)。 C语言 的函数库十分丰富 ANSIC 建议提供了一百多个标准库函数,不同的 C 编译系统除了提供标准库函数外,还增加了其他一些专门的函数,如 Turbo C 提供了三百多个库函数。不同编译系统所提供的库函数个数和功能是不完全相同的,大大方便程序设计者。