编译链接、宏替换、条件编译

本文详细介绍了程序编译链接的四个阶段:预处理、编译、汇编和链接,并重点关注了预处理中的宏替换和条件编译。预处理包括展开头文件、宏替换和条件编译,而宏替换虽然可以提高代码复用性和性能,但存在不可调试、无类型安全检查及可读性差的问题。条件编译则允许根据特定条件选择性地编译代码段。
摘要由CSDN通过智能技术生成

编译链接

程序的编译分为4个阶段

  • 预处理:展开头文件/宏替换/去掉注释/条件编译 (test.i main.i)
  • 编译:检查语法,生成汇编语言 (test.s main.s)
  • 汇编:将汇编语言转换成机器语言 (test.o main.o)
  • 链接:链接到一起生成可执行文件 (a.out)

简单的一些预处理命令:

</
预处理命令 含义
#define 宏替换
#undef 撤销定义过的宏名
#include 让编译程序将另一源文件嵌入到含有#include的程序中
#if #endif 如果#if后的常量表达式为true,则编译#if与#endif之间的代码,否则跳过这些代码。#endif标志着一个#if块的结束
#else #else建立另一个选择,在#if失败后编译
#elif 可以形成一个if else if 的阶梯状语句,进行多种编译选择
#line 改变当前行数和文件名,它们是在编译程序中预先定义的标识符
#error 编译程序中,只要遇到#error,就会生成一个编译错误提示信息,并停止编译
#pragma 为实现时定义的命令,它允许想编译程序传递各种命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值