怎样用c语言编译

Python023

怎样用c语言编译,第1张

C编译的整个过程很复杂,大致可以分为以下四个阶段

预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。

编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。

汇编阶段将汇编语言翻译成机器指令。

链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。

C语言编译过程分成四个步骤: 

1,由.c文件到.i文件,这个过程叫预处理 

2,由.i文件到.s文件,这个过程叫编译 

3,由.s文件到.o文件,这个过程叫汇编 

4,由.o文件到可执行文件,这个过程叫链接

用gcc查看预处理过程(假设源文件叫hello.c) 

gcc -o hello.i hello.c -E 

然后用 vi hello.i 即可查看生成的预处理文件

按ESC 输入:$ 跳到预处理文件 可看到hello.c源码

宏的本质:预处理阶段的单纯的字符串替换

预处理阶段,不考虑C语法

C语言编译器目前主要有VC++、dev-C++、C-Free、win-TC、TC 2.0等等。

其中比较经典的VC++,微软的产品,编译器,链接器,运行,调试等功能于一体的强大开发工具,特点是功能十分强大,对于新手来说需要一段时间去摸索。

dev-C++是windows下一款开发c/c++的开发环境,使用gcc为编译器,遵循标准,功能比较强大,语法高量,可以进行单步调试(这对排除错误很重要),进行断点设置等功能,遵循C标准,是一款很强大的开发工具。

C-Free是一款支持多种编译器的专业化C/C++集成开发环境(IDE)。利用C-Free,使用者可以轻松地编辑、编译、连接、运行、调试C/C++程序。

TC 2.0:Borland公司的产品,在dos界面下编译运行,小巧、灵活,但是不能使用鼠标。

win-TC:在tc2.0的基础上加上了界面,能够使用鼠标,具有语法高量,可以嵌入汇编等特点,对新手一些,拜托了不能用鼠标的困难。

编译器,简单讲,就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)。