C语言学习(二)——编译和预处理过程

c语言编译过程
预处理

简单来说是替换
gcc -E -o outputFile InputFile --预处理

编译(编译成汇编文件)

.c — .s gcc -S .c
汇编(编译成对象文件 .o文件 包含各个函数的入口标记)
.s ---- .o gcc -c .s

链接(可执行文件 link)

gcc -o outputFile inputFile

预处理命令

include :包含头文件
define :宏定义

思考一:为什么define 和 include 不是c语言中的关键字?
关键字是在编译过程中会使用的 而define和include 会在预处理时就将其替换
成等价的语句 不会出现在编译的过程
define宏定义:预处理时 只进行替换 不进行语法的检查 (完全替换)
#else #ifndef #endif #ifdef:条件编译
#ifdef xxx   ====如果xxx定义了 就编译 里面包含在里头的代码
	代码
#else
预定义宏(这是系统定义的宏 跟编译有关 如gcc)
__FUNCTION__ :当前所在的函数的函数名(%s)
__LINE__: 输出行号(%d)
__FILE__:输出当前的文件名(%s)
宏定义展开的 #、##

#:代表将值字符串化 如:#define ABC(x) #x ----把x字符串化 ABC(x)== string(x)
##:连接符
如:MyDay1 MyDay2
#define Day(x) MyDay##x
Day(1)==MyDay1 Day(2)==MyDay2

宏定义常量(宏定义时宏名都要用大写字母 注意式子要加上括号)
一般宏定义的常量都是int常量

改变类型
如:#define VAR (99999*99999)L ----将int转化为long
UL:unsigned long
LL:long long

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值