广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言中预处理的示例分析
  • 682
分享到

C语言中预处理的示例分析

2023-06-25 14:06:32 682人浏览 独家记忆
摘要

小编给大家分享一下C语言中预处理的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!#define定义宏带副作用的宏参数我们来看如下一段代码结果分别为12,1

小编给大家分享一下C语言中预处理的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    #define定义宏带副作用的宏参数

    我们来看如下一段代码

    C语言中预处理的示例分析

    结果分别为12,11,13

    当参数替换后,首先判断表达式 (a++)>(b++)?,判断后a的值加1 b的值加1,然后执行表达式(b++)此时执行的值为12,执行完成后b的值加1,则a的值为11,b的值为13。可以看出对于这种情况下的宏是带有副作用的,可能会导致不可预料的结果

    #define定义宏的优点

    实现以下代码,用函数好还是宏好?

    C语言中预处理的示例分析

    用于调用函数和返回代码的时间可能比这个小型计算所需的时间更多,所以宏在速度上和规模上更胜一筹

    函数的参数必须声明为特定的类型,所以函数只能在类型合适的表达式使用,而宏则与类型无关,所以如果比较浮点型时使用函数就会有警告

    #define定义宏劣势

    每次使用宏时,一段宏定义的代码会插入到代码中,除非宏比较短,否则将大幅增加代码的长度

    由于存在信息差,宏是没办法调试的。我们看到的是宏定义的名字,而实际运行是宏定义的代码。例:

    C语言中预处理的示例分析

    C语言中预处理的示例分析

    看似代码没错,但实际上是因为无法调试宏而找不出错误。

    宏由于与类型无关,也就不够严谨

    宏可能带来运算符优先级的问题,容易导致结果出错

    预处理

    预定义符号

    __FILE__          进行编译的源文件

    __DATE__        文件被编译的日期

    __TIME__         文件被编译的时间

    __LINE__          文件当前的行号

    __STDC__         若编译器遵循ANSI C标准 则值为1,否则未定义

    预处理指令

    #define  宏定义

    #undef  撤销已定义宏名

    #include  使编译程序将另一源文件嵌入到带有#include的源文件中

    #ifdef    如果定义

    #ifndef    如果未定义

    #endif

    预处理指令为上述以及其他#开头的指令

    条件编译

    能够让语句选择编译或者放弃

    常用于调试性的代码,删除可惜,保留又碍事,或者防止重复头文件多次编译

    1.调试性代码

    C语言中预处理的示例分析

    若未定义,则不会编译其中的代码 

    C语言中预处理的示例分析

    2.防止重复的头文件多次编译

     C语言中预处理的示例分析

    还可以用#pragma once

    C语言中预处理的示例分析

    以上是“C语言中预处理的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网其他教程频道!

    --结束END--

    本文标题: C语言中预处理的示例分析

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

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

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

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

    下载Word文档
    猜你喜欢
    • C语言中预处理的示例分析
      小编给大家分享一下C语言中预处理的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!#define定义宏带副作用的宏参数我们来看如下一段代码结果分别为12,1...
      99+
      2023-06-25
    • C语言之预处理命令的示例分析
      这篇文章主要介绍C语言之预处理命令的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!c提供的预处理功能有:宏定义文件包含条件编译为了与其她c语句区分,命令经常以符号“#”开头。宏定义#define 标识符 字符...
      99+
      2023-06-14
    • CSS中预处理语言的示例分析
      小编给大家分享一下CSS中预处理语言的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Less 是一门 CSS 预处理语言...
      99+
      2022-10-19
    • C语言中程序环境与预处理的示例分析
      这篇文章主要介绍了C语言中程序环境与预处理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。c语言代码的实现包含两种环境1.翻译环境,将源代码转化成可执行的机器指令2....
      99+
      2023-06-29
    • C语言程序环境中的预处理实例分析
      本篇内容介绍了“C语言程序环境中的预处理实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、翻译环境整个翻译环境大致就可以画成这样一张...
      99+
      2023-06-29
    • C语言中的程序环境与预处理实例分析
      本篇内容主要讲解“C语言中的程序环境与预处理实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言中的程序环境与预处理实例分析”吧!1.程序的翻译环境和执行环境在ANSI C的任何一种实现...
      99+
      2023-07-02
    • C语言程序的编译与预处理实例分析
      本篇内容介绍了“C语言程序的编译与预处理实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!程序的翻译环境和执行环境在ANSIC的任何一种...
      99+
      2023-06-30
    • C语言异常处理机制的示例分析
      这篇文章将为大家详细讲解有关C语言异常处理机制的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。异常处理机制:setjmp()函数与longjmp()函数  C标准库提供两个特殊的函数:setjmp...
      99+
      2023-06-20
    • C语言中循环的示例分析
      这篇文章主要为大家展示了“C语言中循环的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中循环的示例分析”这篇文章吧。(壹)while语句1.1while的执行流程比如我们实现:在屏...
      99+
      2023-06-29
    • C语言中队列的示例分析
      这篇文章将为大家详细讲解有关C语言中队列的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、队列(Queue)0x00 队列的概念 概念:① 队列只允许在一端进行插入数据操作,在另一端进...
      99+
      2023-06-29
    • C语言中数组的示例分析
      这篇文章给大家分享的是有关C语言中数组的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 数组数组是一组相同类型变量的有序集合,用于存放一组相同类型的数据。这一组变量用数组名和从0开始的下标标识,使用内...
      99+
      2023-06-29
    • C语言中返回值的示例分析
      这篇文章给大家分享的是有关C语言中返回值的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 函数返回值定义的结构在<cstdlib>,其中有两个成员。为 di...
      99+
      2022-10-19
    • C语言中库函数的示例分析
      这篇文章主要为大家展示了“C语言中库函数的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中库函数的示例分析”这篇文章吧。1 返回整数的getchar函数代码:#include<...
      99+
      2023-06-29
    • C语言中链接器的示例分析
      小编给大家分享一下C语言中链接器的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1 什么是链接器典型的链接器把由编译器或汇编器生成的若干个目标模块,整合成...
      99+
      2023-06-29
    • C语言中二叉树的示例分析
      这篇文章主要为大家展示了“C语言中二叉树的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中二叉树的示例分析”这篇文章吧。树概念及结构树是一种 非线性 的数据结构,它是由 n ( n...
      99+
      2023-06-29
    • C语言中单链表的示例分析
      这篇文章将为大家详细讲解有关C语言中单链表的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、思路步骤1. 定义结构体a.数据域:用来存放数据b.指针域:用来存放下一个数据的位置2.初始化申请头结...
      99+
      2023-06-25
    • Go语言异常处理的示例分析
      这篇文章主要为大家展示了“Go语言异常处理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Go语言异常处理的示例分析”这篇文章吧。异常处理程序运行时,发生的不被期望的事件,它阻止了程序按...
      99+
      2023-06-20
    • C语言中动态内存管理的示例分析
      这篇文章主要介绍了C语言中动态内存管理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是动态内存分配我们都知道在C语言中,定义变量的时候,系统就会为这个变量分配内...
      99+
      2023-06-25
    • C语言操作符的示例分析
      这篇文章给大家分享的是有关C语言操作符的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言C语言中操作符不多,但是有些相同的操作符都是在不同的表达式中,有不同的解释意思,比如 * 号,在表达式中5*5表示...
      99+
      2023-06-20
    • C语言中函数递归的示例分析
      这篇文章主要介绍C语言中函数递归的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是递归?递归(recursion):程序调用自身的一种编程技巧。如何理解函数递归:从调用自身层面:函数递归就是函数自己调用自...
      99+
      2023-06-29
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作