一、编译环境

编译环境:编译和链接
编译:预处理、编译、汇编

预处理:生成拷贝#include的函数,删除并替换所有define,删除所有注释
编译:C语言代码->汇编代码,语法分析,语义分析
汇编:转化为二进制信息

链接:地址和空间分配、符号决议、重定位,解决多文件多模块互相调用


二、运行环境

程序必须写入内存中,由操作系统或手动配置
接着调用main函数,使用堆栈、静态内存等

三、预处理详解

预定义符号:—( ) —,FILE,DATE,LINE,TIME等等

define定义常量:a代替b (//register存放到寄存器里,\ :续行符)

define宏定义:类似a代替b,只是a为参数(宏参数不能出现递归)

#和##:
#将宏参数替换为字符串量,仅用于带参数的宏中
##将两边的符号粘合成一个,有效才行否则未定义

命名约定:define全部大写,函数部分大写

#undef:移除define定义

命令行:终端中使用,可去定义变量

条件编译:选择性的编译,不能出现变量

头文件的包含:官方用< >,个人用 " "

其他预处理指令:#pragma,#error,#line

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐