C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > Linux环境下c语言的预处理命令

Linux环境下c语言的预处理命令使用及说明

作者:梦到啥说啥

还在为C语言预处理头疼吗?本文用大白话讲解宏定义、文件包含和条件编译,并手把手演示gcc编译的四个步骤:预处理、编译、汇编和链接,带参宏和函数的区别、宏定义注意事项也都讲透了,看完你就能彻底搞懂C程序的编译全过程

预处理的功能

1.在c语言中#include <stdio.h> 就是一种预处理命令

类似还有#include<srring.h>这种都属于预处理命令

2.这些预处理命令都是带有#开头的

1.C提供的预处理功能主要有以下3种

2.编译器

1.通过gcc编译器可以将.c文件编译成可执行文件

2.注意:gcc编译器默认直接一步到位,但底层其实分 4 个步骤

3.实际的编译过程

预处理:

将程序中的预处理命令,执行完,将代码处理成 纯的C语言代码

编译:

将预处理完的文件,进行语法,词法分析,检查问题

生成 一份 汇编代码

汇编:

将前面的汇编代码,最终翻译成机器代码

链接:

将用到的第三方代码 链接(拼接)成为 最终可执行程序

4.编译过程的步骤代码

预处理:

gcc -E hello.c -o hello.i

编译:

gcc -S hello.i -o hello.s

汇编:

gcc -c hello.s -o hello.o

链接:

gcc hello.o -o hello

示例:

以输入hello world到终端的代码演示四个步骤

(1)预处理阶段

(2)编译阶段

(3)汇编阶段

(4)链接阶段

1. 宏定义

用宏来替代文本信息

写法:

注意:

2.带参宏

所有宏定义都是以换行作为结束符,都是将文本信息原样替代

代码示例:

带参宏还可以定义一串代码

要用加上\代表在同一行,\后面不得跟有其他符号,结果输出一致,将宏的部分替代成一串代码

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文