c语言宏作用域,c语言中宏定义的作用

本文目录一览:

C语言多个源程序宏定义的作用范围

宏定义分类:

(1)不带参数的宏定义

形式: #define 宏名 [宏体]

功能:可以实现用宏体代替宏名

使用实例: #define TRUE 1

作用:程序中多次使用TRUE,如果需要对TRUE的值进行修改,只需改动一处就可以了

(2)带参数的宏: #define 宏名 ( 参数表) [宏体]

宏定义作用:

(1)方便程序的修改

上面的#define TRUE 1就是一个实例

(2)提高程序的运行效率

宏定义的展开是在程序的预处理阶段完成的,无需运行时分配内存,能够部分实现函数的功能,却没有函数调用的压栈、弹栈开销,效率较高

(3)增强可读性

这点不言而喻,当我们看到类似PI这样的宏定义时,自然可以想到它对应的是圆周率常量

(4)字符串拼接

例如:

#define CAT(a,b,c) a##b##c

main()

{

printf(“%d\n” CAT(1,2,3));

printf(“%s\n”, CAT(‘a’, ‘b’, ‘c’);

}

程序的输出会是:

123

abc

(5)参数转化成字符串

示例:

#defind CAT(n) “abc”#n

main()

{

printf(“%s\n”, CAT(15));

}

输出的结果会是

abc15

(6)用于程序调试跟踪

常见的用于调试的宏有,_ L I N E _,_ F I L E _,_ D A T E _,_ T I M E _,_ S T D C _

(7)实现可变宏

举例来说:

#define PR(…) printf(_ _VA_ARGS_ _)

C语言宏的作用域

C的宏也有做用域之说?我倒是真不知道呀,搞了这么多年的C

我只知道,宏定义从定义开始到取消定义止,它都是有效的,它是在编译之前预处理替换的,不是在运行中的东西,对于最终的执行程序而言,它并不知道有宏这么个东西

你可以做个简单的试验:

#include stdio.h

void main()

{

do

{

#define TEST 123

printf(“%d\n”,TEST);

}while(0);

#ifndef TEST

printf(“有生存周期”);

#else

printf(“没有生存周期%d”,TEST);

#endif

}

/////////////运行结果:

123

没有生存周期123

C语言中,提前终止宏定义作用域的命令是?

在C语言中,宏定义的作用域是从定义的那一行开始直到文件末尾,

但我们可以用#undef来提前终止宏定义的作用域。

请采纳,谢谢。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/254497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-14 17:42
下一篇 2024-12-14 17:42

相关推荐

  • Python中init方法的作用及使用方法

    Python中的init方法是一个类的构造函数,在创建对象时被调用。在本篇文章中,我们将从多个方面详细讨论init方法的作用,使用方法以及注意点。 一、定义init方法 在Pyth…

    编程 2025-04-29
  • Python中set函数的作用

    Python中set函数是一个有用的数据类型,可以被用于许多编程场景中。在这篇文章中,我们将学习Python中set函数的多个方面,从而深入了解这个函数在Python中的用途。 一…

    编程 2025-04-29
  • Python3定义函数参数类型

    Python是一门动态类型语言,不需要在定义变量时显示的指定变量类型,但是Python3中提供了函数参数类型的声明功能,在函数定义时明确定义参数类型。在函数的形参后面加上冒号(:)…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python定义函数判断奇偶数

    本文将从多个方面详细阐述Python定义函数判断奇偶数的方法,并提供完整的代码示例。 一、初步了解Python函数 在介绍Python如何定义函数判断奇偶数之前,我们先来了解一下P…

    编程 2025-04-29
  • Python中的队列定义

    本篇文章旨在深入阐述Python中队列的定义及其应用,包括队列的定义、队列的类型、队列的操作以及队列的应用。同时,我们也会为您提供Python代码示例。 一、队列的定义 队列是一种…

    编程 2025-04-29
  • Python符号定义和使用方法

    本文将从多个方面介绍Python符号的定义和使用方法,涉及注释、变量、运算符、条件语句和循环等多个方面。 一、注释 1、单行注释 # 这是一条单行注释 2、多行注释 “”” 这是一…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29

发表回复

登录后才能评论