iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言中程序环境与预处理的示例分析
  • 548
分享到

C语言中程序环境与预处理的示例分析

2023-06-29 02:06:08 548人浏览 独家记忆
摘要

这篇文章主要介绍了C语言中程序环境与预处理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。c语言代码的实现包含两种环境1.翻译环境,将源代码转化成可执行的机器指令2.

这篇文章主要介绍了C语言中程序环境与预处理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    c语言代码的实现包含两种环境

    1.翻译环境,将源代码转化成可执行的机器指令2.执行环境,执行代码

    1.翻译环境

    包括两个过程,编译与链接

    • 程序中每一个源文件通过编译器转化成目标文件(obj)

    • 这些目标文件又通过链接器捆绑在一起

    • 链接器同时会链接标准库中的函数以及程序员个人的库到程序中

    • 形成可执行代

    编译分成三个阶段:预编译(预处理)->编译->汇编

    预处理阶段

    1.完成头文件的引用2.#define定义的宏与符号的替换3.注释的删除

    编译阶段:将代码转化成汇编代码

    1.语法分析2.词法分析3.语义分析4.符号汇总

    汇编阶段:生成符号表,将汇编指令转化成二进制的机器指令

    链接阶段:将多个目标文件与链接库进行链接

    1.合并段表2.符号表的重定向与重定位

    2.运行环境

    1.在有操作系统的环境中,程序由操作系统加载到内存中。在独立的环境中,这个操作手动完成。2.程序从main函数开始执行3.程序调用堆栈4.终止程序

    3.预处理详解

    3.1#define定义的符号

    符号名一般大写,后面不要加上;

    #define MAX 100

    3.2#define定义的宏

    #define SQUARE(x) ((x) * (x))

    宏的名字与参数之间不能加空格;尽量多加括号,避免错误

    3.3#define的替换规则

    #define M 100#define MAX(X,Y)  (X) > (Y) ? (X) : (Y)int main(){int max = MAX(M,50);//这里的M会被先替换成100printf("%d",max);}
    1.如果有宏,先查看宏的参数有没有#define定义的符号,如果有则替换2.将替换的文本与程序中的宏替换3.再查看是否有定义的符号,如果有则替换

    C语言中程序环境与预处理的示例分析

    替换#define定义的符号时,不会替换字符串常量中的内容。

    宏的参数中能出现define定义的符号,但是宏不能实现递归

    3.4#与##

    在宏的定义中(# + 参数)能将参数转换成对应的字符串

    C语言中程序环境与预处理的示例分析

    ##能连接两个符号

    C语言中程序环境与预处理的示例分析

    4.宏与函数对比

    宏的优点

    1.宏的参数类型不用声明2.当运算量较小时,宏的运算时间与代码量是远小于函数的

    缺点

    1.宏类型无关,不够严谨2.宏不能调试3.每次使用宏的时候,一份宏定义的代码将插入到程序中。除非宏比较短,否则可能大幅度增加程序的长度。4.宏可能带来运算优先级的问题

    5.#undef

    用于移除宏定义

    6.条件编译

    #if与#endif为一组,如果#if后的表达式为真,执行代码直到#endif

    C语言中程序环境与预处理的示例分析

    但是#if后面不能写变量

    多个分支的条件编译#if#elif#elif#else#endif

    判断是否被定义

    • #if defined(symbol)

    • #ifdef symbol

    • #if !defined(symbol)

    • #ifndef symbol

    7.文件包含

    #include后用双引号,编译器会先从本地目录下查找,找不到再去库函数中找。用<>编译器直接在库函数中找

    为了防止头文件被反复包含,用#pragma once,写在头文件第一行

    或者用

    #ifndef NAME

    #define NAME

    //头文件内容

    #endif

    感谢你能够认真阅读完这篇文章,希望小编分享的“C语言中程序环境与预处理的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网其他教程频道,更多相关知识等着你来学习!

    --结束END--

    本文标题: C语言中程序环境与预处理的示例分析

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

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

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

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

    下载Word文档
    猜你喜欢
    • C语言中程序环境与预处理的示例分析
      这篇文章主要介绍了C语言中程序环境与预处理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。c语言代码的实现包含两种环境1.翻译环境,将源代码转化成可执行的机器指令2....
      99+
      2023-06-29
    • C语言中的程序环境与预处理实例分析
      本篇内容主要讲解“C语言中的程序环境与预处理实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言中的程序环境与预处理实例分析”吧!1.程序的翻译环境和执行环境在ANSI C的任何一种实现...
      99+
      2023-07-02
    • C语言程序环境中的预处理实例分析
      本篇内容介绍了“C语言程序环境中的预处理实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、翻译环境整个翻译环境大致就可以画成这样一张...
      99+
      2023-06-29
    • C语言程序环境和预处理详解分析
      目录一、程序的翻译环境和运行环境程序的翻译环境链接阶段执行环境(运行环境)二、预处理详解预定义符号#define定义标识符#define定义宏#define 替换规则#和##两个预处...
      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.运行环境3.预处理详解3.1#define定义的符号3.2#define定义的宏3.3#define的替换规则3.4#与##4.宏与函数对比5.#undef6.条...
      99+
      2024-04-02
    • C语言中预处理的示例分析
      小编给大家分享一下C语言中预处理的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!#define定义宏带副作用的宏参数我们来看如下一段代码结果分别为12,1...
      99+
      2023-06-25
    • C语言程序环境中的预处理详解
      目录一、翻译环境二、执行环境三、预处理1. 预处理符号2. #define定义标识符3. #define定义宏4. #和##5. 宏和函数的对比6. 条件编译7. 文件包含总结一、翻...
      99+
      2024-04-02
    • C语言程序的编译与预处理实例分析
      本篇内容介绍了“C语言程序的编译与预处理实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!程序的翻译环境和执行环境在ANSIC的任何一种...
      99+
      2023-06-30
    • 一起来学习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语言的程序环境与预处理你真的了解吗
      目录1.翻译环境2.运行环境3.预处理详解3.1#define定义的符号3.2#define定义的宏3.3#define的替换规则3.4#与##4.宏与函数对比5.#undef6.条...
      99+
      2024-04-02
    • CSS中预处理语言的示例分析
      小编给大家分享一下CSS中预处理语言的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Less 是一门 CSS 预处理语言...
      99+
      2024-04-02
    • C语言之预处理命令的示例分析
      这篇文章主要介绍C语言之预处理命令的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!c提供的预处理功能有:宏定义文件包含条件编译为了与其她c语句区分,命令经常以符号“#”开头。宏定义#define 标识符 字符...
      99+
      2023-06-14
    • C语言中程序环境和预处理的详细图文讲解
      目录1. 程序的翻译环境和执行环境 2. 详解编译+链接 2.1 翻译环境2.2 编译本身也分为几个阶段2.3 运行环境  3. 预处理详解3.1 预定...
      99+
      2023-02-16
      c语言程序环境和预处理的区别 c语言的编译预处理 c语言程序环境
    • C语言中循环的示例分析
      这篇文章主要为大家展示了“C语言中循环的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中循环的示例分析”这篇文章吧。(壹)while语句1.1while的执行流程比如我们实现:在屏...
      99+
      2023-06-29
    • C语言程序的编译与预处理详解
      目录一、程序的编译1、 编译阶段2、链接二、预处理详解1、预定义符号2、#define定义的标识符3、#define定义的宏4、#unef总结一、程序的编译 我们写的源文件(*.c)...
      99+
      2024-04-02
    • C语言中程序编译系统的示例分析
      这篇文章主要介绍C语言中程序编译系统的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境 :第1种是翻译环境,在这个环境中源代码被转换为可...
      99+
      2023-06-29
    • C语言中冒泡排序的示例分析
      这篇文章给大家分享的是有关C语言中冒泡排序的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。(壹)冒泡排序1.1冒泡排序的设计冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排...
      99+
      2023-06-29
    • C语言循环与分支语句实例分析
      本篇内容主要讲解“C语言循环与分支语句实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言循环与分支语句实例分析”吧!写在开始0表示假,非0表示真。1. 分支语句分支语句也叫做条件选择语...
      99+
      2023-06-30
    • C语言异常处理机制的示例分析
      这篇文章将为大家详细讲解有关C语言异常处理机制的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。异常处理机制:setjmp()函数与longjmp()函数  C标准库提供两个特殊的函数:setjmp...
      99+
      2023-06-20
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作