c语言的宏、预处理、typedef

由源码到可执行文件的过程:源码.c->(预处理)->预处理过的.c->(编译)->汇编文件.S->(汇编)->目标文件.o->(链接)->elf可执行程序
摘要由CSDN通过智能技术生成

1.预处理的概念

  • 由源码到可执行文件的过程:

源码.c->(预处理)->预处理过的.c->(编译)->汇编文件.S->(汇编)->目标文件.o->(链接)->elf可执行程序

  • gcc -E xx.c -o xx.i可以实现只预处理不编译,可以用来帮助我们研究预处理过程,帮助debug程序

2.条件编译

  • #if#ifdef的区别:#if后面跟的值只要是非零就为真,而#ifdef后面跟的宏被定义就为真
  • 值得注意的是,条件编译要注意顺序,如果#define xxx#ifdef xxx 后面,那么这个#ifdef xxx 是为假、不成立的

3.宏定义

  • 宏定义是没有先后顺序讲究的,这和条件编译不同,宏定义是递归替换的,直接会替换到没有宏定义为止,比如
#define M 10
#define N M     //纵使M定义在N之前,N的值仍然会被替换成10
  • 宏定义的机制:宏定义视括号括起来的语句
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值