c语言中什么是宏定义,它是干什么的

2020-11-23 17:22:44 字数 6174 阅读 9404

1楼:蜻蜓点水

就是强制性的字符替换,比如说你要用a代表6,那么后面所有是a的地方都是用字符6替换掉就可以了,这个是不进行运算只是替换

比如define a (a+b)

那么后面所有a的地方都可以全部替换成(a+b)但是你不能用a+b的结果

2楼:

宏定义又称为预定义,它有很多功能,我也刚刚了解一点。首先他能定义常量,这样我们可以集中统一修改。其次,它还能定义函数(预定义)。总之,熟悉它会很方便。

在c语言中 宏定义是什么?

3楼:雪人晒太阳

在c语言源程序中,允许用一个标识符来表示一个字符串,称为宏,宏定义是由源程序中的宏定义命令完成的,宏替换是由预处理程序自动完成的。宏定义是c提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。

4楼:blackpink_罗捷

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

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

格式:#define 标识符 字符串

其中的标识符就是所谓的符号常量,也称为“宏名”。

预处理(预编译)工作也叫做宏:将宏名替换为字符串。

掌握"宏"概念的关键是“换”。一切以换为前提、做任何事情之前先要换,准确理解之前就要“换”。

扩展资料

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

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

二十世纪八十年代,为了避免各开发厂商用的c语言语法产生差异,由美国国家标准局为c语言制定了一套完整的美国国家标准语法,称为ansi c,作为c语言最初的标准。目前2011年12月8日,国际标准化组织(iso)和国际电工委员会(iec)发布的c11标准是c语言的第三个官方标准,也是c语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

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

其编译器主要有clang、gcc、win-tc、sublime、msvc、turbo c等。

5楼:仁昌居士

c语言中的宏定义用法分为两种。

1、不带参数的宏定义比较简单,就是用一个指定的标识符来代表一个字符串。它的一般形式为“#define 标识符 字符串”,例如#define e 2.718281828459。

这种方法使用户能以一个简单的名字代替一个长的字符串。

2、带参数的宏定义不是仅仅进行简单的字符串替换,还要进行参数替换。其定义的一般形式为;“#define 标识符(宏名)(参数表) 字符串”,字符串中包含在括号中所指定的参数。例如#define s(a,b) a*b area=s(3.

2)。

c语言中宏定义是什么意思?

6楼:

形式:#define《宏标志》《字符串》

例如 #define pi 3.14159

表示在以下的程序中 pi 课代替3.14159

7楼:匿名用户

就是给一些常用到的参数给一个值,在后面用到这个参数时就用这个宏标志代替旧可以了。旧比如楼上说的pi,每次都输入3.1415926比较麻烦,宏定义后就可以用pi代替3.

1415926了。

8楼:永恒求知者

说白了,就是文本处理,没那么复杂

9楼:业令郦雪峰

设定a=b+c,则在下面语句中所有的a都会被替换成b+c

10楼:腾昌休秋芸

##用来连接前后两个参数,把它们变成一个字符串,比如bdbg_object_id(abc)可解释为extern

const

char

bdbg_id_unused_abc

11楼:逯昕修运晟

举一个小例子:

#include

#define

pi3.1415926

intmain()

上面的这个

12楼:霜萝越易云

宏定义 就这样理解 程序后面所有的x 都被转成你设定的值

在c语言中"宏"是什么意思?

13楼:杨尘一

简单来说:宏定义又称为宏代换、宏替换,简称“宏”。是c提供的三种预处理功能的其中一种。

说明:1、宏名一般用大写

2、使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义

3、预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。

4、宏定义末尾不加分号;

5、宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头。

6、可以用#undef命令终止宏定义的作用域

7、宏定义可以嵌套

8、字符串" "中永远不包含宏

9、宏定义不分配内存,变量定义分配内存。

14楼:萌萌

定义的意思,在c语言中的宏定义就是定义外部变量,内部函数使用exiterm来调用

如:exiterm char c1,c2;

c语言中的宏定义的字是:definec语言中的define宏定义有带参数的和不带参数两中形式,不带参格式是:#define 宏名,字符串带参格式是:

#define 宏名(参数1,参数2,...) 字符串在c语言里宏定义只用来做的宏名替换,而不做语法检查的,因而它不是c语句,所以在宏定义的时候不需要在后面加";"宏也在c里也叫预处理命令,因为宏是在程序编译前先进行字符替换的,所以叫预处理.在c里还有其它的预处理命令如:

#define

#undef

#ifdef等。

c语言中的宏定义是什么?

15楼:匿名用户

#define xx ashfihfuhfisufhs

就会使编译时程序中所有的xx替换成ashfihfuhfisufhs谢谢!

在c语言学习中什么叫宏定义?

16楼:

宏定义是高级语言编译器提供的常用语法,其目的是利用某一标识符标识某个文本字符串。在编写程序时,如果程序中反复地使用某个数据或某段程序片段,就可以考虑将这个数据或程序片段定义为宏,然后每个出现该数据或程序片段的地方用宏名替代,这样做的好处是程序简洁,可读性好,而且当需要修改这些相同的程序片段时,只要修改宏定义中的字符串即可,不需要修改多处。

17楼:匿名用户

#define ...

就是找个符号代表一个数或一句话等等,在程序中用这个符号,编译时,替换回来,大概就这个意思

18楼:

预处理命令的一种,即用#define命令将一个指定的标识符(宏名)来代表一个字符串。

详情请见:http://blog.readnovel.***/article/htm/tid_900939.html

或 http://****neu.edu.**/cxsj/online/c11/ch11_2_3.html

c语言中的“宏”是指什么?

19楼:加百列

宏是一种预处理指令,它提供了一种机制,可以用来替换源**中的字符串。

1、条件编译:

c语言中,预处理过程读入源**,检查包含预处理指令的语句和宏定义,并对源**进行相应的转换,预处理过程还会删除程序中的注释和多余的空白符号。

预处理指令是以#开头的**行,#必须是该行除了空白字符外的第一个字符。#后是指令关键字,在#和指令关键字之间允许存在若干空白字符。

使用宏进行条件编译的用法与使用宏防止多重引用类似。示例如下:

使用条件编译,方便程序员在调试程序的过程中,执行一些在程序发布后并不需要执行的指令。只要在需要调试的**前加上_debug的定义,就可以在调试程序的过程中输出调试信息。

这样方便查看程序在运行过程中有没有出现错误,定位错误出现的地方。而在程序发布之前,取消_debug的定义就可以不再执行调试**。

2、宏函数:

函数的调用是需要一定的时间和空间代价的。因为系统在调用函数时,需要保留"现场",即将程序要执行的指令的下一条指令的位置压入栈,然后转入调用函数去执行,调用完函数后再返回主调函数,恢复"现场",返回到栈里保存的的下一条指令的位置继续执行。

所以函数的调用需要额外的时间和空间代价。

而宏函数则不存在上述问题,宏函数在预编译时,同函数定义的**来替换函数名,将函数**段嵌入到当前程序,不会产生函数调用。

所以会省去普通函数保留现场恢复现场的时间,但因为要将定义的函数体嵌入到当前程序,所以不可避免的会占用额外的存储空间。

在频繁调用同一个宏的时候,该现象尤其明显。宏函数的示例定义如下:

#define max(a,b) ((a)<(b)?(b):(a))

宏函数的优点在于避免函数调用,提高程序效率。

同时需要注意的是inline标识符。inline也将函数定义为内联的。但是使用内联函数需要注意的是:

函数体必须十分简单,不能含有循环、条件、选择等复杂结构,否则就不能作为内联函数了。

事实上,有时候即便你没有将函数指定为内联函数,编译器也会将一些简单的函数作为内联函数处理,而对于一些复杂的函数,即使声明为内联函数,编译器也不会理会的。

inline函数的瓶颈就在于此,使用inline标识符将函数声明为内联的,但这只是一种提示,到底编译器有没有优化还依赖于编译器的实现,而使用宏函数则完全由**本身控制。

但在使用宏函数的时候,需要明确的是宏函数只是简单的替换,需要注意括号的使用。

扩展资料:

宏的更多规则特性:

(1)宏名一般用大写。

(2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义。

(3)预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。

(4)宏定义末尾不加分号。

(5)宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头。

(6)可以用#undef命令终止宏定义的作用域。

(7)宏定义不可以嵌套。

(8)字符串" "中永远不包含宏。

(9)宏定义不分配内存,变量定义分配内存。

(10)宏定义不存在类型问题,它的参数也是无类型的。

20楼:榴莲泡芙小蛋糕

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

“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。

计算机语言如c语言或 汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。c语言的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如m4,c程序员可以获得更精巧的宏。

在objective-c语言源程序中,允许用一个标识符来表示一个字符串,称为宏,被定义为宏的标识符称为宏名。在编译预处理时,对程序中所有出现的宏名,都用宏定义中的字符串去替换,这称为宏替换或宏。

宏定义是由源程序中的宏定义命令完成的,宏替换是由预处理程序自动完成的。在objective-c语言中,宏分为有参数和无参数两种。

扩展资料

a类宏是用g65 hxx p#xx q#xx r#xx或g65

hxx p#xx qxx

rxx格式输入的,xx的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1mm #xx就是变量号,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量。

一般otd系有#0~#100~#149~#500~#531.关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据。我们如果说#100=30那么现在#100地址内的数据就是30了。

b类宏能完成某一功能的一系列指令像子程序那样存入存储器,用户可以设定m、s、t、g**调用它们,使用时只需给出这个指令**就能执行其功能,也可以像调用子程序一样使用。

c语言中宏定义是什么意思,在C语言中 宏定义是什么?

1楼 形式 define《宏标志》《字符串》 例如 define pi 3 14159 表示在以下的程序中 pi 课代替3 14159 2楼 匿名用户 就是给一些常用到的参数给一个值,在后面用到这个参数时就用这个宏标志代替旧可以了。旧比如楼上说的pi,每次都输入3 1415926比较麻烦,宏定义后就...

宏定义中的“宏”字是什么意思,“C语言的宏定义”是什么?

1楼 匿名用户 宏是巨大的 大量使用的意思,就是一系列操作的集合,能够无数次重复使用。 宏定义用英文标识为 define macro excel软件中的宏就是一系列的vb 组合,用sub和end sub包起来的一段 ,能够自动完成一系列操作和任务,而且功能很强大。可以编辑窗体和进行人机交互操作,多 ...

C++中是什么,C++中是^干什么的

1楼 希望撒比 这是c cli的语法。有两类指针 用 nogc标识的指针是传统意义上的c 指针,而用 gc标识的指针为 中的引用。但在c cli里,唯一的指针就是传统意义上的c 指针,而 引用类型使用一个 句柄 来获取,使用新的语法 类名 代替了mc 的 类名 。 新的句法使得托管和非托管 混合开发...