宏定义能否被赋值

Posted hscholar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了宏定义能否被赋值相关的知识,希望对你有一定的参考价值。

  计算机科学里的宏(Macro),是一种批量批处理的称谓。一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。这种替换在预编译时进行,称作宏展开。

  发现定义中有意思的点在于这个“语法替换”,。

  当宏定义值本身为常量时,这个宏就替换为一个常量,

    如:“#define MACRO_B 200”,MACRO_B就不可以被重新赋值。

  当宏定义本身代表了一个变量时,这个宏就替换了这个变量,也就同时拥有了该变量可以被赋值的特点,

    如

    “#define MACRO_C (a)

    int a = 10;”

  此时MACRO_C代替了整形变量a,同时MACRO_C也可以被赋值。

以上是关于宏定义能否被赋值的主要内容,如果未能解决你的问题,请参考以下文章

c语言宏定义

如何在Makefile中定义宏进行条件编译

让人懵逼的宏定义赋值

宏定义

keil4怎样进行宏定义

常见的编译器内置宏