函数
在c语言中,函数是程序的基本单位,每个函数都是具有独立功能的模块。利用函数,可以方便实现程序的模块化,同时使整个程序的组织,编写,阅读,调试,修改和维护更加方便,使程序更清晰。同时,同一个函数可以被一个或多个函数调用任意多次!就减少了同样代码的多次编写!
C语言中的函数,类似于在C#和Java中中的方法,函数一般分为:
1、【主函数】
一般一个PC程序只有一个主函数,也就是程序的入口,这是编译器的约定,如果你觉得不爽可以写链接器脚本直接,可以不使用main作为程序的入口
2、【自定义函数】
想想面向对象中必备的各种类,各种Helper,Util吧
3、【库函数】
stadio提供的printf和scanf函数。
默认情况下程序从上往下执行后面的定义的函数可以调用前面定义的函数。在标准的C语言编译器中,提前编译没有定义的函数会error。
一般来说编译器编译C语言的几个阶段:
①预处理编译阶段,读取c源程序,对其中的伪指令(以#开头的指令如#include #define)和特殊符号进行处理。扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。预处理过程先于编译器对源代码进行处理。
②语法和词法分析阶段,这个阶段的工作会判断基本的数据类型定义是不是存在问题,调用的函数是否存在诸如此类的工作;
③编译阶段,首先将C文件编译成成纯汇编语句,然后将将汇编语句转换成跟CPU相关的二进制码,生成各个目标文件 (.obj文件);
④链接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,也可以用objcopy生成纯二进制码去掉了文件格式信息,生成.exe文件;