㈠ c语言的宏(macro)是什么怎样使用宏
#define VERSION—STAMP "1.02" 上例中所定义的这种形式的宏通常被称为标识符。在上例中,标识符VERSION_STAMP即代表字符串"1.02"——在编译预处理时,源代码中的每个VERSION_STAMP标识符都将被字符串“1.02”替换掉。 以下是另一个宏定义的例子: #define CUBE(x)((x),(x)*(x)) 上例中定义了一个名为CUBE的宏,它有一个参数x。CUBE宏有自己的宏体,即((x)*(x)*(x))——在编译预处理时,源代码中的每个CUBE(x)宏都将被((x)*(x)*(x))替换掉。 使用宏有以下几点好处: (1)在输入源代码时,可省去许多键入操作。 (2)因为宏只需定义一次,但可以多次使用,所以使用宏能增强程序的易读性和可靠性。 (3)使用宏不需要额外的开销,因为宏所代表的代码只在宏出现的地方展开,因此不会引起程序中的跳转。 (4)宏的参数对类型不敏感,因此你不必考虑将何种数据类型传递给宏。 需要注意的是,在宏名和括起参数的括号之间绝对不能有空格。此外,为了避免在翻译宏时产生歧义,宏体也应该用括号括起来。例如,象下例中这样定义CUBE宏是不正确的: denne CUBE(x) x * x * x 对传递给宏的参数也要小心,例如,一种常见的错误就是将自增变量传递给宏,请看下例: #include #include CUBE(x) (x * x * x) void main (void); void main (void){int x, y;x = 5;y = CUBE( + +x); printfC'y is %d\n" . y);}在上例中,y究竟等于多少呢?实际上,y既不等于125(5的立方),也不等于336(6* 7*8),而是等于512。因为变量x被作为参数传递给宏时进行了自增运算,所以上例中的CUBE宏实际上是按以下形式展开的: y = ((++x) * (++x) * (++x)); 这样,每次引用x时,x都要自增,所以你得到的结果与你预期的结果相差很远,在上例中,由于x被引用了3次,而且又使用了自增运算符,因此,在展开宏的代码时,x实际上为8,你将得到8的立方,而不5的立方。 上述错误是比较常见的,作者曾亲眼见过有多年C语言编程经验的人犯这种错误。因为在程序中检查这种错误是非常费劲的,所以你要给予充分的注意。你最好试一下上面的例子,亲眼看一下那个令人惊讶的结果值(512)。 宏也可使用一些特殊的运算符,例如字符串化运算符“#”和。连接运算符“##”。“#”运算符能将宏的参数转换为带双引号的字符串,请看下例: define DEBUG_VALUE(v) printf(#v"is equal to %d.\n",v) 你可以在程序中用DEBUG_VALUE宏检查变量的值,请看下例: int x=20; DEBUG_VALUE(x); 上述语句将在屏幕上打印"x is equal to 20"。这个例子说明,宏所使用的“#”运算符是一种非常方便的调试工具。 “##”运算符的作用是将两个独立的字符串连接成一个字符串。
㈡ c语言中的“宏”是指什么
是一种批量处理的称谓。计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。
“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。
计算机语言如C语言或 汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C语言的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C程序员可以获得更精巧的宏。
在Objective-C语言源程序中,允许用一个标识符来表示一个字符串,称为宏,被定义为宏的标识符称为宏名。在编译预处理时,对程序中所有出现的宏名,都用宏定义中的字符串去替换,这称为宏替换或宏展开。
宏定义是由源程序中的宏定义命令完成的,宏替换是由预处理程序自动完成的。在Objective-C语言中,宏分为有参数和无参数两种。
(2)什么是c语言的macro扩展阅读
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代码调用它们,使用时只需给出这个指令代码就能执行其功能,也可以像调用子程序一样使用。
㈢ 汇编宏指令macro和c语言中的函数的区别
macro和#define是同一个概念
子程序和函数是同一个概念
㈣ c语言中宏名是什么类型
宏名有可能是类型,也有可能是函数,要看宏的定义。宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。
宏名一般用大写。
使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义。
㈤ 在C语言中 宏定义是什么
在C语言源程序中,允许用一个标识符来表示一个字符串,称为宏,宏定义是由源程序中的宏定义命令完成的,宏替换是由预处理程序自动完成的。宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。
(5)什么是c语言的macro扩展阅读:
宏(Macro),是一种批量处理的称谓。计算机科学里的宏是一种抽象,它根据一系列预定义的规则替换一定的文本模式。
计算机语言如C语言或汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C语言的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C程序员可以获得更精巧的宏。
㈥ 英语Macro怎么翻译
Maco是 C语言宏定义,具体来说,就是【计算机科学里的宏是一种抽象,它根据一系列预定义的规则替换一定的文本模式。】
㈦ C语言什么是宏
C中,源程序中用一个标识符表示一个字符串,称为宏。被定义为宏的标识符称为宏名。在编译预处理时对宏名都用宏定义中的字符串代替,成为宏替换,由程序自动完成
㈧ 什么是c语言里面的宏
简而言之:就是用一个符号代替一堆东西。让代码精简化