C语言基础(21)-C语言编译过程及GCC参数简介
任何C语言的编译过程可分为以下三部分:
一.预编译
在C语言中,以#开头的语句又叫预编译指令。预编译主要做以下两件事情:
1.将#include包含的头文件做简单的文本替换;
2.将代码中的注释删除。
gcc -E 参数代表预编译。以test.c函数为例,内容如下:
进行预编译:
如上图,编译完成后可生成new.c文件,打开new.c
发现之前写的#include<stdio.h>和注释都不见了,而上面出现了一堆乱七八糟的代码。事实上,预编译做的事情就是将注释去掉,然后将#include <stdio.h> 替换成上面那部分代码,而上面那部分代码其实就是stdio.h文件的内容。
二.编译
编译的作用就是把文本的C语言编译为二进制的指令。
gcc -c 参数代表编译。
三.链接
C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序当中去。
gcc 没有单独的链接参数
链接a.o最后生成的文件叫a.执行该文件:
显示程序的最终执行结果:hello world
PS: gcc -o 的语法:【gcc 源文件 -o 编译后生成的文件名】,o就是output的意思。
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
分类:
C语言基础知识
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库