返回顶部
首页 > 资讯 > 后端开发 > JAVA >程序环境和预处理
  • 181
分享到

程序环境和预处理

c语言 2023-09-22 18:09:39 181人浏览 泡泡鱼
摘要

> 作者简介:დ旧言~,目前大一,现在学习Java,c,c++,python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 望小伙伴们点赞👍收藏✨加关注哟💕💕  🌟

> 作者简介:დ旧言~,目前大一,现在学习Java,c,c++python
> 座右铭:松树千年终是朽,槿花一日自为荣。
> 望小伙伴们点赞👍收藏✨加关注哟💕💕 

🌟前言 

      学到这里的小伙伴们,咱们C语言就要结束啦,不知道小伙伴们学得咋样,相信学的不错 

今天是C语言最后的一篇博客,《程序环境和预处理》。来波鸡汤:

这个世界不会因为你的疲惫,而停下它的脚步。今天你不用力走,明天就要用力跑。如果无法避免,那我们能做的,不过只是把自己变得更强大,强大到能够应对下一场挑战。

 🌙主体

咱们由二个方面来讲解程序环境和预处理。

 
1.程序的环境
2.预处理

 🌠程序的环境

       谈起程序的环境,就不得不说起程序的翻译环境,程序的执行环境。而我们知道C语言代码是文本信息,计算机是不能直接理解的,因此需要相应的环境来支持C语言代码,来看看这两种环境有什么区别:

💦第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 (C语言环境-->二进制的指令) 💦第2种是执行环境,它用于实际执行代码。 (执行二进制的代码)

💤翻译环境

💦 组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code 💦 每个目标文件由链接器(linker )捆绑在一起,形成一个单一而完整的可执行程序。 💦 链接器同时也会引入标准C 函数库中任何被该程序所用到的函数,而且它可以搜索程序员个人的程序库,将其需要的函数也链接到程序中。
咱们看一段代码来看看编译阶段:
#include int main(){int i = 0;for (i = 0; i < 10; i++){printf("%d ", i);}return 0;}
💦 1. 预处理 选项 GCc - E test.c - o test.i 预处理完成之后就停下来,预处理之后产生的结果都放在 test.i 文件中。 💦 2. 编译 选项 gcc - S test.c 编译完成之后就停下来,结果保存在 test.s 中。 💦 3. 汇编 gcc - c test.c 汇编完成之后就停下来,结果保存在 test.o 中。

💤运行环境

程序执行的过程: 💦 1. 程序必须载入内存中。在有操作系统的环境中:一般这个由操作系统完成。在独立的环境中,程序的载入必须由手工安排,也可能是通过可执行代码置入只读内存来完成。 💦 2. 程序的执行便开始。接着便调用 main 函数。
💦 3. 开始执行程序代码。这个时候程序将使用一个运行时堆栈( stack ),存储函数的局部变量和返回地址。程序同时也可以使用静态(static )内存,存储于静态内存中的变量在程序的整个执行过程一直保留他们的值。 💦 4. 终止程序。正常终止 main 函数;也有可能是意外终止。

 🌠预处理

咱们预处理由三个方面来讲解

💦1.预处理符号

💦2.#define

💤预处理符号

__FILE__       // 进行编译的源文件 __LINE__     // 文件当前的行号 __DATE__     // 文件被编译的日期 __TIME__     // 文件被编译的时间 __STDC__     // 如果编译器遵循 ANSI C ,其值为 1 ,否则未定义
这些预定义符号都是语言内置的。 举个栗子: printf ( "file:%s line:%d\n" , __FILE__ , __LINE__ );

💤#define

其实#define我们早早接触啦,那它具体使用的语法为:#define name stuff

💦name是定义的名字

💦stuff需要定义的形式(int,char)

注意:#define name stuff后面不需要加;

#define替换规则 💦 1. 在调用宏时,首先对参数进行检查,看看是否包含任何由 #define 定义的符号。如果是,它们首先被替换。 💦 2. 替换文本随后被插入到程序中原来文本的位置。对于宏,参数名被他们的值所替换。 💦 3. 最后,再次对结果文件进行扫描,看看它是否包含任何由 #define 定义的符号。如果是,就重复上述处理过程。 注意: 1. 宏参数和 #define 定义中可以出现其他 #define 定义的符号。但是对于宏,不能出现递归 2. 当预处理器搜索 #define 定义的符号的时候,字符串常量的内容并不被搜索。

 🌟结束语

       今天内容就到这里啦,时间过得很快,大家沉下心来好好学习,会有一定的收获的,大家多多坚持,嘻嘻,成功路上注定孤独,因为坚持的人不多。那请大家举起自己的小说手给博主一键三连,有你们的支持是我最大的动力💞💞💞,回见。

来源地址:https://blog.csdn.net/AAlykk/article/details/132701340

--结束END--

本文标题: 程序环境和预处理

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

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

猜你喜欢
  • 程序环境和预处理
    > 作者简介:დ旧言~,目前大一,现在学习Java,c,c++,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 望小伙伴们点赞👍收藏✨加关注哟💕💕  🌟...
    99+
    2023-09-22
    c语言
  • C语言程序环境和预处理详解分析
    目录一、程序的翻译环境和运行环境程序的翻译环境链接阶段执行环境(运行环境)二、预处理详解预定义符号#define定义标识符#define定义宏#define 替换规则#和##两个预处...
    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语言程序环境中的预处理详解
    目录一、翻译环境二、执行环境三、预处理1. 预处理符号2. #define定义标识符3. #define定义宏4. #和##5. 宏和函数的对比6. 条件编译7. 文件包含总结一、翻...
    99+
    2024-04-02
  • C语言中的程序环境与预处理详情
    目录1.程序的翻译环境和执行环境2.详解编译和链接2.1程序翻译环境下的编译和链接2.2深入编译和链接过程2.3运行环境3.预处理详解3.1预定义符号3.2#define3.2.1#...
    99+
    2024-04-02
  • C语言中程序环境和预处理的详细图文讲解
    目录1. 程序的翻译环境和执行环境 2. 详解编译+链接 2.1 翻译环境2.2 编译本身也分为几个阶段2.3 运行环境  3. 预处理详解3.1 预定...
    99+
    2023-02-16
    c语言程序环境和预处理的区别 c语言的编译预处理 c语言程序环境
  • C语言程序环境中的预处理实例分析
    本篇内容介绍了“C语言程序环境中的预处理实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、翻译环境整个翻译环境大致就可以画成这样一张...
    99+
    2023-06-29
  • 一起来学习C语言的程序环境与预处理
    目录1.程序的翻译环境和执行环境2.gcc C语言编译器来演示编译过程2.1编译2.2编译:2.3运行环境3详解预处理3.1预定义符号3.2#define3.2.1#define定义...
    99+
    2024-04-02
  • C语言中程序环境与预处理的示例分析
    这篇文章主要介绍了C语言中程序环境与预处理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。c语言代码的实现包含两种环境1.翻译环境,将源代码转化成可执行的机器指令2....
    99+
    2023-06-29
  • C语言中的程序环境与预处理实例分析
    本篇内容主要讲解“C语言中的程序环境与预处理实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言中的程序环境与预处理实例分析”吧!1.程序的翻译环境和执行环境在ANSI C的任何一种实现...
    99+
    2023-07-02
  • C语言的程序环境与预处理你真的了解吗
    目录1.翻译环境2.运行环境3.预处理详解3.1#define定义的符号3.2#define定义的宏3.3#define的替换规则3.4#与##4.宏与函数对比5.#undef6.条...
    99+
    2024-04-02
  • 微信小程序区分开发环境、测试环境和正式环境
    问题: 本地存储和获取当前用户的userCode,但是测试和线上版本的本地存储是互通的,调用的域名不互通,测试环境和线上环境数据不一样,所以会报错线上查询不到当前用户或者测试版本查询不到没有当前用户。 解决方法: 微信提供了wx.getAc...
    99+
    2023-09-08
    微信小程序 小程序 微信
  • 【微信小程序 | 实战开发】开发环境、测试环境和生产环境
    写在前面: 你是否想要掌握人工智能的最新技术和应用?你是否想要成为未来社会的创新者和领导者?你是否想要和全球的优秀导师和同学一起学习和交流?如果你的答案是肯定的,那么欢迎来到床长人工智能教...
    99+
    2023-09-07
    微信小程序 小程序
  • Windows程序环境之Python
    一、文章目的        该文章主要为了整理在Windows环境下,针对Python脚本语言开发环境的基本的设置,尤其针对在同一系统中安装多个不同版本的Python,因为不熟悉导致在程序创作浪费大量时间,个人以前缺少总结,对此通过一系列文...
    99+
    2023-09-13
    windows python
  • Python 之 OpenGL程序环境
            Python+OpenGL,想想都觉得很刺激~~         首先还是下载PyOpenGL包:http://pypi.python.org/pypi/PyOpenGL/3.0.2        在windows下,安装...
    99+
    2023-01-31
    环境 程序 Python
  • Java指令重排序在多线程环境下如何处理
    这篇文章主要讲解了“Java指令重排序在多线程环境下如何处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java指令重排序在多线程环境下如何处理”吧!一、序言指令重排在单线程环境下有利于提...
    99+
    2023-06-30
  • ASP.NETCore处理错误环境
    1.前言 ASP.NET Core处理错误环境区分为两种:开发环境和非开发环境。 开发环境:开发人员异常页。非开发环境:异常处理程序页、状态代码页。 在Startup.Configu...
    99+
    2024-04-02
  • Java指令重排序在多线程环境下的处理方法
    目录一、序言二、问题复原(一)关联变量1、结果预测2、指令重排(二)new创建对象1、解析创建过程2、重排序过程分析三、应对指令重排(一)AtomicReference原子类(二)v...
    99+
    2024-04-02
  • C语言程序环境编译+链接理论
    目录一、程序的翻译环境(编译和链接)二、程序的运行环境一、程序的翻译环境(编译和链接) 在ANSI C 的任何一种实现中,存在两个不同的环境: 第一种是翻译环境,在这个环境中源代码被...
    99+
    2024-04-02
  • ASP应用程序:如何在Linux环境下实现高并发处理?
    ASP应用程序是一种常用的Web应用程序,可以用于开发各种类型的网站和Web应用程序。在高并发的情况下,ASP应用程序需要处理大量的请求,如果不加以优化,就会导致程序响应变慢,甚至崩溃。本文将介绍如何在Linux环境下实现高并发处理,以确保...
    99+
    2023-06-26
    并发 linux 函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作