程序环境和预处理

文章介绍了编程语言的编译过程,包括预处理阶段的宏定义、条件编译和头文件处理,强调了宏与函数的优缺点。接着,概述了编译、汇编和链接阶段,解释了如何从源代码生成可执行文件。在头文件和库文件包含方面,指出了使用方式及其对程序的影响。
摘要由CSDN通过智能技术生成

预处理阶段

预处理阶段——检查基本语义,语法作用
FILE //进行编译的源文件
LINE //文件当前的行号
DATE //文件被编译的日期
TIME //文件被编译的时间
STDC //如果编译器遵循ANSI C,其值为1,否则未定义

预处理:头文件的展开/宏替换/条件编译/去掉注释 .i

预定义符号-define

后面不加 ; 容易引发错误

#define name stuff

define定义宏 记得加括号保证优先级

宏和函数的对比
在这里插入图片描述
. 用于调用函数和从函数返回的代码可能比实际执行这个小型计算工作所需要的时间更多。所以宏比函数在程序的规模和速度方面更胜一筹。
2. 更为重要的是函数的参数必须声明为特定的类型。
所以函数只能在类型合适的表达式上使用。反之这个宏怎可以适用于整形、长整型、浮点型等可以
用于>来比较的类型。
宏是类型无关的。

宏的缺点:当然和函数相比宏也有劣势的地方:

  1. 每次使用宏的时候,一份宏定义的代码将插入到程序中。除非宏比较短,否则可能大幅度增加程序
    的长度。
  2. 宏是没法调试的
  3. 宏由于类型无关,也就不够严谨。
  4. 宏可能会带来运算符优先级的问题,导致程容易出现错。

编译阶段

在这里插入图片描述
编译:检查语法,生成汇编代码 .s

汇编阶段

汇编:汇编代码转换二进制机器码 .o

头文件包含

库文件包含<>直接查找库一次
自己的头文件" "查找一次 但是如果用库函数使用这个导入就会查找库两次

链接

链接:合成生成可执行文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值