c语言基础知识大全:大一c语言基础知识大全
C语言过程性语言,结构化c程序的设计原则:1.自顶而下;2.逐步细化;3.模块化设计;4.结构化编码。针对嵌入式C在实现中,存在两种不同的环境:翻译环境(translation environment)和执行环境(execution env
C语言过程性语言,结构化c程序的设计原则:1.自顶而下;2.逐步细化;3.模块化设计;4.结构化编码针对嵌入式C在实现中,存在两种不同的环境:翻译环境(translation environment)和执行环境(execution envionment)。
翻译环境:源代码转换为可执行的机器之类执行环境:用于实际执行代码两种环境很多时候位于不同的机器上如:交叉编译器(cross compiler)部署在服务器端,它产生的可执行代码运行于不同的CPU上由源程序到可执行代码需要经过翻译。
翻译阶段将组成程序的每个源文件通过编译过程转换为目标代码(object code)然后,各个目标文件由链接器(linker)绑定在一起,形成可执行程序链接器同时也会引入C函数库及个人或他人编写的库函数编译过程由预处理(prepressing),编译(compilation),汇编(assembly),链接(linker)。
预处理阶段:预处理器在源代码上执行文本操作如:将#define指令定义的符号用实际值代替,读取由#include指令包含的文件内容,删除注释,添加行号和文件名标识,便于编译器在编译时产生调试用的行号信息和编译错误及告警的行号。
gcc -E test.c -o test.i编译阶段:源代码经过解析,判断它的语句意思此部分产生绝大多数的错误和告警分为扫描,语法分析,语义分析,源代码优化(在命令行加入了要求优化选项),目标代码生成,目标代码优化,优化器(optimizer)对目标代码优化,使它效率更高。
注意优化需要额外的时间gcc -S test.i -o test.s 或 gcc -S test.c -o test.s汇编:由汇编器as完成,将汇编代码转换为机器可执行的指令as test.s -o test.o 或 gcc -c test.c -o test.o 或 gcc -g -o test.o test.c。
链接:由连接器ld完成,将源代码生成目标文件,如*.ko ,*.so ,*.out等ld *.o -o test.out链接生成的目标文件,为最终可执行文件。
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186