iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言程序环境编译的方法
  • 772
分享到

C语言程序环境编译的方法

2023-06-30 10:06:13 772人浏览 薄情痞子
摘要

这篇文章主要介绍“C语言程序环境编译的方法”,在日常操作中,相信很多人在C语言程序环境编译的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言程序环境编译的方法”的疑惑有所帮助!接下来,请跟着小编一起来

这篇文章主要介绍“C语言程序环境编译的方法”,在日常操作中,相信很多人在C语言程序环境编译的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言程序环境编译的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、程序的翻译环境(编译和链接)

在ANSI C 的任何一种实现中,存在两个不同的环境:

  • 第一种是翻译环境,在这个环境中源代码被转换成可执行的机器指令。

  • 第二种是执行环境,它用于实际执行代码。

如下图:就是我们编译器编译一个源文件到一个可执行文件的大致过程

C语言程序环境编译的方法

  • 组成一个程序的每个源文件(test.c)通过编译过程分别转换成目标代码(test.obj)

  • 每个目标文件又由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序。

  • 链接器同时会引入标准c函数库中任何被该程序所用到的函数。

对于一个源文件(test.c)变成最终的二进制文件(test.exe)可以通过下图简单表示:

C语言程序环境编译的方法

C语言程序环境编译的方法

看上图我们知道:编译又分三步:

预编译 (预处理)(test.c —>test.i)

  • (1)处理所有的注释,以空格代替

  • (2)将所有的#define删除,并展开所有的宏定义

  • (3)处理条件编译指令#if、#ifdef、#elif、#else、#endif

  • (4)处理#include,展开被包含的文件

  • (5)保留编译器需要使用的#pragma指令

编译 (test.i —>test.s)

  • (1)把C语言代码编译成汇编代码

  • (2)进行语法分析,词法分析,语义分析,符号汇总形成符号表

汇编 (test.s —>test.o)

  • 汇编过程实际上指把汇编语言代码翻译成目标机器指令的过程。对于被翻译系统处理的每个C语言源程序,都将最终经过这一处理而得到相应的目标文件。 目标文件中所存放的也就是与源程序等效的目标的机器语言代码。

编译完后执行链接,链接会做哪些事呢?

  • 合并段表

  • 符号表的合并和符号表的重定位

  • 最后形成(test.exe)

二、程序的运行环境

  • 程序必须载入内存,在有操作系统的环境中:一般这个由操作系统来完成。在独立的环境中,程序的载入必须由手工安排,也可能是通过可执行代码置入只读内存来完成。

  • 程序的执行便开始,接着调用main函数。

  • 开始执行程序代码,这个时候程序将使用一个运行时堆栈,存储函数的局部变量和返回地址,程序同时也使用静态(static)内存,存储与静态内存中的变量在程序的整个执行过程一直保留他们的值。

  • 终止程序。正常终止main函数,也可能是意外终止(代码出错)

到此,关于“C语言程序环境编译的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: C语言程序环境编译的方法

本文链接: https://www.lsjlt.com/news/328254.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言程序环境编译的方法
    这篇文章主要介绍“C语言程序环境编译的方法”,在日常操作中,相信很多人在C语言程序环境编译的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言程序环境编译的方法”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-30
  • C语言程序环境编译+链接理论
    目录一、程序的翻译环境(编译和链接)二、程序的运行环境一、程序的翻译环境(编译和链接) 在ANSI C 的任何一种实现中,存在两个不同的环境: 第一种是翻译环境,在这个环境中源代码被...
    99+
    2024-04-02
  • 怎么编译C语言程序
    这篇文章主要介绍了怎么编译C语言程序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么编译C语言程序文章都会有所收获,下面我们一起来看看吧。编译/执行 C 程序实例#include <stdio.h>...
    99+
    2023-06-17
  • C语言预编译的方法
    本篇内容介绍了“C语言预编译的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、预定义符号预定义符号是系统本身定义的:FILE ...
    99+
    2023-06-30
  • C语言 程序的编译系统解析
    目录程序的翻译环境和执行环境编译和链接翻译环境编译的几个阶段预处理编译汇编链接运行环境今天我来补一下C语言篇的程序的编译的一篇文章,也算是有一个结尾了。 程序的翻译环境和执行环境 在...
    99+
    2024-04-02
  • VSCode配置C语言环境的方法
    VSCode配置C语言环境 VSCode是一款强大编辑器,开源,免费,海量插件,支持很多编程语言。其中的很多功能可以大大地提高我们的学习与工作效率,现在本文介绍如何在VSCode上配...
    99+
    2024-04-02
  • C语言程序的编译与预处理详解
    目录一、程序的编译1、 编译阶段2、链接二、预处理详解1、预定义符号2、#define定义的标识符3、#define定义的宏4、#unef总结一、程序的编译 我们写的源文件(*.c)...
    99+
    2024-04-02
  • C语言程序环境中的预处理详解
    目录一、翻译环境二、执行环境三、预处理1. 预处理符号2. #define定义标识符3. #define定义宏4. #和##5. 宏和函数的对比6. 条件编译7. 文件包含总结一、翻...
    99+
    2024-04-02
  • 如何编译go语言程序
    本篇文章给大家分享的是有关如何编译go语言程序,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Go语言是编译型的静态语言(和C语言一样),所以在运行Go语言程序之前,先要将其编译...
    99+
    2023-06-15
  • VScode中配置JavaScript编译环境的方法
    目录01. 起因02. 下载安装VSCODE03. 方式一:使用Node.js做为解释器运行JS代码Node.js的安装和配置在VSCODE中配置Node.js04. 方式二:使用V...
    99+
    2024-04-02
  • c语言的程序环境与预处理详解
    目录1.翻译环境2.运行环境3.预处理详解3.1#define定义的符号3.2#define定义的宏3.3#define的替换规则3.4#与##4.宏与函数对比5.#undef6.条...
    99+
    2024-04-02
  • C语言中程序编译系统的示例分析
    这篇文章主要介绍C语言中程序编译系统的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境 :第1种是翻译环境,在这个环境中源代码被转换为可...
    99+
    2023-06-29
  • sublime搭建C/C++编译环境的示例
    这篇文章主要介绍了sublime搭建C/C++编译环境的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sublime搭建C/C++编译环境(超完美的配置并配上内容详细讲解...
    99+
    2023-06-06
  • C语言图文并茂详解程序编译过程
    目录一、初识编译器二、程序被编译的过程三、小结一、初识编译器 编译器是一个广义的概念,真正的编译器由下面几个模块组成,真正的编译器是进行语法分析和语义分析的。 二、程序被编译的过程...
    99+
    2024-04-02
  • sublimetext3搭建配置c语言编译环境的详细图解教程(小白级)
    目录使用sublime text3编译c语言部分准备工作配置环境变量新建sublime text3的c语言编译环境举例软件下载可以在官网下载,均为免费软件有问题可以联系我邮箱求助:s...
    99+
    2023-01-16
    sublime text3配置c语言编译环境 sublime text3搭建c语言环境
  • linux中怎么使用gcc编译c语言程序
    在Linux中使用gcc编译C语言程序,可以按照以下步骤操作:1. 打开终端窗口(Terminal)。2. 进入要编译的C语言程序所...
    99+
    2023-09-21
    linux c语言
  • MacOs使用VS Code编译调试C语言程序
    参考博客:Windows/macOS使用VSCode搭建C/C++的开发/Debug环境 1. 在macOS安装VS Code 在微软官方下载适合macOS版本的VS Code。 2. 在VS Code的扩展里搜索并安装如下扩展 C/C++...
    99+
    2023-08-17
    macos c语言 vscode
  • C语言中的程序环境与预处理详情
    目录1.程序的翻译环境和执行环境2.详解编译和链接2.1程序翻译环境下的编译和链接2.2深入编译和链接过程2.3运行环境3.预处理详解3.1预定义符号3.2#define3.2.1#...
    99+
    2024-04-02
  • C语言TCP网络编程环境怎么搭建
    要搭建C语言TCP网络编程环境,首先需要安装一个C语言编译器,比如gcc。然后需要使用socket库来进行网络编程。 以下是一个简单...
    99+
    2024-03-02
    C语言
  • C语言程序的编译与预处理实例分析
    本篇内容介绍了“C语言程序的编译与预处理实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!程序的翻译环境和执行环境在ANSIC的任何一种...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作