在C语言中 宏定义是啥?

Posted

tags:

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

参考技术A

宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。

宏定义又称为宏代换、宏替换,简称“宏”。

扩展资料:

宏(Macro),是一种批量处理的称谓。计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。

解释器或编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。

宏这一术语也常常被用于许多类似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数情况下,“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSIC,作为C语言最初的标准。

目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、TurboC等。

参考资料:

宏定义-百度百科

C语言-百度百科

c语言中宏定义是啥意思?

您好!很高兴为您解答。

宏定义的用处主要体现在便于程序的调试上。

比如我要写一个计算圆相关信息(周长、面积等等)的程序,需要定义π(3.14):

#define PI 3.14

那么势必PI这个标识可以在程序中代替所有的3.14,如果我发现计算的精度不够,需要π的更多有效位时,则只需将宏定义修改为:

#define PI 3.1415926

那么程序中的所有PI都会变成3.1415926

可想而知,没有宏定义,我需要将代码中全部的3.14都手动改为3.1415926

即使是定义double PI=3.14;,你会发现当代码很长时,在乱军丛中找到一行“double PI=3.14;”是多么困难的事。

又比如数组,定义时是不能出现“int a[n];”这样的定义的,编译通不过,因为必须规定数组长度。

但如果是:

#define N 10
int a[N];
就可以,对宏定义编译器是不作检查的,应为宏定义只是简单的符号替换。所以一旦我还没有确定要定义多长的数组,但又想通过编译时,就可以提现宏定义的用处了。

如此看来,宏定义提升了程序编写的灵活性。

望采纳~如您还有不解,欢迎追问~
参考技术A ##用来连接前后两个参数,把它们变成一个字符串,比如BDBG_OBJECT_ID(abc)可解释为extern
const
char
bdbg_id_unused_abc
参考技术B 就是给一些常用到的参数给一个值,在后面用到这个参数时就用这个宏标志代替旧可以了。旧比如楼上说的PI,每次都输入3.1415926比较麻烦,宏定义后就可以用PI代替3.1415926了。 参考技术C 形式:#define<宏标志><字符串>
例如 #define PI 3.14159
表示在以下的程序中 PI 课代替3.14159本回答被提问者采纳
参考技术D 说白了,就是文本处理,没那么复杂

以上是关于在C语言中 宏定义是啥?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中,宏替换与定义全局变量的区别是啥?

这句c语言宏定义是啥意思, 请高手解释一下, 谢谢了!

宏编程是啥?

Makefile 是如何工作的?其中的宏定义分别是啥意思?

C语言宏定义

C语言中怎样修改宏定义呢