1、预处理
在这一阶段,源码中的所有预处理语句得到处理,例如:#include语句所包含的文件内容替换掉语句本身,所有已定义的宏被展开。
根据#ifdef,#if等语句的条件是否成立取舍相应的部分,预处理之后源码中不再包含任何预处理语句。
GCC预处理阶段可以生成i的文件,通过选项-E可以使编译器在预处理结束时就停止编译。例如:gcc -E -o helloi helloc
2、编译
这一阶段,编译器对源码进行词法分析、语法分析、优化等 *** 作,最后生成汇编代码。这是整个过程中最重要的一步,因此也常把整个过程称为编译。
可以通过选项-S使GCC在进行完编译后停止,生成s的汇编程序。例如:gcc -S -o hellos helloc
3、汇编
这一阶段使用汇编器对汇编代码进行处理,生成机器语言代码,保存在后缀为o的目标文件中。
当程序由多个代码文件构成时,每个文件都要先完成汇编工作,生成o目标文件后,才能进入下一步的链接工作。
目标文件已经是最终程序的某一部分了,只是在链接之前还不能执行。可以通过-c选项生成目标文件:gcc -c -o helloo helloc
4、链接
经过汇编以后的机器代码还不能直接运行。为了使 *** 作系统能够正确加载可执行文件,文件中必须包含固定格式的信息头,还必须与系统提供的启动代码链接起来才能正常运行,这些工作都是由链接器来完成的。gcc -o hello helloc
5、运行:执行EXE文件,得到运行结果。
一个C程序是由函数构成的。一个C程序至少包含一个函数(main函数),也可以包含一个main函数和若干个
其他
函数。函数是C程序的基本单位。C的函数相当于其它语言中的子程序。用函数来实现特定功能。可以说C是函数式语言。程序全部
工作
都是由函数来完成的。C的这种特点使得容易实现程序的模块化。
函数在C语言中占有极重要的地位,我们要清楚函数的组成:一个函数由两部分组成:
(1)函数的说明部分:包括函数名、函数类型、函数属性、函数参数(形参)名、形式参数类型。
(2)函数体,即在函数说明部分下面的大括弧{……}内的部分。每个函数的函数函数体只有一个,但是可以嵌套使用。函数体又包括变量定义和执行部分,在某些情况下也可以没有这两个部分如下面的空函数:
1、C语言程序是由函数构成的,函数是C程序的基本组成单位;
2、一个C语言程序中仅有一个main函数,除main函数之外有若干个其它的函数,每个函数实现某一特定的 *** 作;
3、一个函数由两部分组成,函数的说明部分,包括函数名、函数类型、函数属性、函数参数名、形式参数类型, 函数体。
以上就是关于C语言源程序到运行程序经过哪几个步骤全部的内容,包括:C语言源程序到运行程序经过哪几个步骤、c语言问题,写出一个C程序的构成,该怎么回答、C语言源程序的基本单位是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)