① 什么是宏定义
宏定义是高级语言编译器提供的常用语法,其目的是利用某一标识符标识某个文本字符串。在编写程序时,如果程序中反复地使用某个数据或某段程序片段,就可以考虑将这个数据或程序片段定义为宏,然后每个出现该数据或程序片段的地方用宏名替代
选择宏定义来做的好处是程序简洁,可读性好,而且当需要修改这些相同的程序片段时,只要修改宏定义中的字符串即可,不需要修改多处。
(1)宏定义在编译中的作用扩展阅读:
参宏定义中#的用法:
#defineSTR(str) #str
#用于把宏定义中的参数两端加上字符串的""
比如,这里STR(my#name)会被替换成"my#name",一般由任意字符都可以做形参,但以下情况会出错:
STR())这样,编译器不会把")"当成STR()的参数。STR(,)同上,编译器不会把","当成STR的参数。STR(A,B)如果实参过多,则编译器会把多余的参数舍去。
(VC++2008为例)STR((A,B))会被解读为实参为:(A,B),而不是被解读为两个实参,第一个是(A第二个是B)。
② 单片机C语言的宏定义有什么作用!!
跟单片机没关系,这是C语言的东西
-------------
#是C语言里的预处理命令,编译器在编译代码之前,会预先处理这部分内容,#define 就是宏定义,对于 #define 的内容是怎样处理的呢?看下面的代码
#define MAX 128
void main()
{
int max=MAX;
}
编译器处理时,会直接把 int max=MAX;替换成 int max=128; 注意,是文本替换,而不是变量赋值,程序中自始至终都不存在MAX这个变量,相当于是用“查找-替换”功能一样,查找 MAX ,替换成 128 。
如果程序中有多个地方要用到同一个值、代码块,我们都可以定义成一个宏,如果这些值或代码块要改动,只需改下宏定义就行了,不用从代码中一处一处的改,很方便,而且不会因为漏掉某个地方而导致程序出错。
③ 急!!!在线等!!C语言宏定义的作用
#是C语言里的预处理命令,编译器在编译代码之前,会预先处理这部分内容,#define 就是宏定义,对于 #define 的内容是怎样处理的呢?看下面的代码
#define MAX 128
void main()
{
int max=MAX;
}
编译器处理时,会直接把 int max=MAX;替换成 int max=128; 注意,是文本替换,而不是变量赋值,程序中自始至终都不存在MAX这个变量,相当于是用“查找-替换”功能一样,查找 MAX ,替换成 128 。
如果程序中有多个地方要用到同一个值、代码块,我们都可以定义成一个宏,如果这些值或代码块要改动,只需改下宏定义就行了,不用从代码中一处一处的改,很方便,而且不会因为漏掉某个地方而导致程序出错。
④ c语言宏定义如何用用宏定义有什么优点
用#define 来定义,如#define Max 100
优点:在以后的程序中 要修改Max的大小 不用跑到程序中找 直接修改
#define Max 的大小即可。很方便。
⑤ “C语言的宏定义”是什么
宏定义又称为宏代换、宏替换,简称“宏”。
是C提供的三种预处理功能的其中一种。
⑥ 在C语言中 宏定义是什么
在C语言源程序中,允许用一个标识符来表示一个字符串,称为宏,宏定义是由源程序中的宏定义命令完成的,宏替换是由预处理程序自动完成的。宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。
宏(Macro),是一种批量处理的称谓。计算机科学里的宏是一种抽象,它根据一系列预定义的规则替换一定的文本模式。
计算机语言如C语言或汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C语言的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C程序员可以获得更精巧的宏。
⑦ 老师,这句宏编译有什么作用,实在看不懂
宏定义的用处主要体现在便于程序的调试上。
比如我要写一个计算圆相关信息(周长、面积等等)的程序,需要定义π(3.14):
#define PI 3.14
那么势必PI这个标识可以在程序中代替所有的3.14,如果我发现计算的精度不够,需要π的更多有效位时,则只需将宏定义修改为:
#define PI 3.1415926
那么程序中的所有PI都会变成3.1415926
⑧ c语言中“宏”是个什么东西 有什么意义
宏定义的作用在预编译阶段,形如 #define A B 就是宏定义了,作用就是在预编译阶段将程序中的A全部视为B,举个例子:
我们在程序最开始,声明如下宏定义
#define pi 3.1415926
那么在我们写程序的时候,我们可以直接使用pi作为一个常量来使用,那么当我们编译程序的时候,编译器会自动将程序中出现的pi替换成3.1415926
第二个例子,利用宏定义定义傻瓜函数
#define mul(A,B) A*B
那么我们可以将mul()在程序中当成函数来使用,为什么叫做傻瓜函数一会来解释,使用方法
mul(3,5) 那么这段代码就相当于计算3*5=15
那么当我们如下使用时就会出现问题
mul(3+2,3) 我们期待的结果是15,而实际结果是9,为什么呢?因为在程序会如下转换
3+2*3=3+6=9 这也就是为什么我们管宏定义出来的函数叫傻瓜函数的原因了~~~
楼主呀~~~完全手写,一定要好评呀!^_^
⑨ C++ 中define(宏定义) 各种用法(含特殊),小举个例子,谢谢!
1、define是宏定义,程序在预处理阶段将用define定义的内容进行了替换。因此在程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。而const定义的常量,在程序运行时,存在常量表中,且系统为它分配内存。
2、define定义的常量,预处理时只是直接进行了替换,因此在编译时不能进行数据类型检验。而const定义的常量,在编译时进行严格的类型检验,可以避免出错。
3、define定义表达式时要注意“边缘效应”。
例如:
#defineN1+2;
floata=N/2.0;
按照常规做法,可能会认为结果是3/2=1.5;
但是实际上,结果应该为1+2/2.0=2.0;
若想要实现3/2,则#defineN(1+2);
即为避免边缘效应,一定要加括号。
(9)宏定义在编译中的作用扩展阅读
C++宏定义
#define命令是C++语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。
1、简单的宏定义:
#define <宏名> <字符串>
例: #define PI 3.1415926
2、带参数的宏定义
#define <宏名> (<参数表>) <宏体>
例: #define A(x) x
⑩ 宏定义的作用,有关于宏定义是怎么回事 有什么作用又该怎么去学习它
编译的时候,编译程序会在编译之前把宏定义自动替换为你定义的东西,比如数值,代码段,甚至函数,这种替换只是纯文本的替换,有些副作用要注意 最简单的例子: 比如下面把圆周率定义为一个宏 你在用到圆周率的地方就可以用PI代替数值输入了,这样你要把用到圆周率精度提高到3.141593的时候就不用去每个地方查找替换了,只要把宏定义改一下就好了