函数的宏定义与常用的函数库

本文介绍了从源码到可执行程序的编译过程,强调了预处理阶段的宏定义、头文件和条件编译。讨论了带参宏与内联函数的区别,以及静态和动态链接库的工作原理。制作和使用静态、动态链接库的步骤也被详细阐述。
摘要由CSDN通过智能技术生成

从源码到可执行程序的生产过程:
源码(.c文件)->经过预处理,变为.i源文件->经过编译,变为.S汇编文件->经过汇编,变为.O目标文件->经过链接,变为.elf可执行程序。
可简单理解为:将.C源文件经过编译(包括汇编)可以得到.O目标文件,将.O目标文件经过链接可以得到.elf的可执行文件。
1、gcc xx.c -c -o xx.o //将xx.c源文件只编译获得xx.o目标文件
2、gcc -E xx.c -o xx.i //将xx.c源文件只预处理获得xx.i源文件(多用于研究预处理过程,帮助debug程序)
常见的放在预处理中处理的:
1、头文件(#include<>和#include" “)
2、注释
3、#if #elif #endif #ifdef
4、宏定义
头文件的使用:
<>专门用来包含系统提供的头文件,” "用来包含自己写的头文件。
编译器中允许使用 -I 来附加指定路径去寻找头文件。
头文件的使用就是将头文件中的内容原地展开替换。
带参宏与内联函数:
带参宏:
带参宏的使用与带参函数类似,所不一样的是在使用带参宏的时候每个参数在宏体中引用时都必须加括号,最后整体再加一个括号。
eg:利用MAX宏,来求2个数中的较大一个
#define MAX(a,b) (((a)>(b))?(a):(b))
利用宏定义来表示一年中有多少秒。
#define SEC_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值