你定义了。在程序中是不能改变的。只能在定义的地方修改。程序在预处理期间进行值替换。
C语言在编译时确定宏定义的值 通过-D选项可以控制编译器在编译时的宏定义值,测试例程如下: #include <stdio.h>#ifndef CCC#defineCCC 1024#endifintmain() { printf("%d\n",CCC);return0; } 显然这里面定义了一个宏CCC。 如果使用编译命令: gcc-o a.out main.c 那么编译并执行以后,输出的结果显然是102...
乘法运算先于宏定义的加法,所以出现了 55 . 这个问题,的解决办法是在宏定义表达式两边加上一对括号就可以了。 #define DOUBLE( x) ( ( x ) + ( x ) ) 提示: 所以用于对数值表达式进行求值的宏定义都应该用这种方式加上括号,避免在使用宏时由于参数中的操作符或邻近操作符之间不可预料的相互作用。 例...
但也许后来发现程序所表现的精度有变化,需要改变它的值, 这就需要修改程序中所有的相关数值,这会给我们带来一定的不便,但如果使用宏定义,使用一个标识符来代替,则在修改时只修改宏定义即可,还可以减少输入 3.1415926这样长的数值多次的情况,我们可以如此定义 #define pi 3.1415926,既减少了输入又便于修改,何乐而不...
一、宏定义宏定义是一种通过预处理器指令定义符号常量的方法。它可以在编译前将符号替换为指定的值。宏定义的语法如下:#define 符号名 值示例:#define PI 3.14159#define MAX_VALUE 100使用示例:float radius = 5.0;float area = PI * radius * radius; // 使用宏定义的PIint num = MAX_VALUE; // ...
“方便程序的修改”。使用宏定义可以用宏代替一个在程序中经常使用的常量。注意,是“经常”使用的。这样,当需要改变这个常量的值时,就不需要对整个程序一个一个进行修改,只需修改宏定义中的常量即可。且当常量比较长时,使用宏就可以用较短的有意义的标识符来代替它,这样编程的时候就会更方便,不容易出错。因此,宏...
掌握"宏"概念的关键是“换”。一切以换为前提、做任何事情之前先要换,准确理解之前就要“换”。所以只要换就可以了:把B换成A*A,那么B*B就是A*A*A*A,然后把A换成3+2,结果就是:3+2*3+2*3+2*3+2=23;不知道你理解了没有,如果是这样宏定义A的,那么结果又不一样了,#define A...
1 C语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。带参宏定义的一般形式为: #define 宏名(形参表) 字符串在字符串中含有各个形参。带参宏调用的一般形式为: 宏名(实参表);例如:#defineM(y)y*y...
宏属于预处理,在编译之前完成替换,因此你的描述应该是做不到的。其实你如果要定义1000个宏,不如直接定义一次数组,然后在初值表赋值了,然后把该数组的内容再赋值给B。int A[1000]={0x5,0xA,)x20,...};
比如说,你在制作一款游戏,游戏里有许多地方需要用到屏幕的宽度和高度。如果直接硬编码这些值,将来如果屏幕大小改变了,你可能需要修改代码中的许多地方。但是,如果你用宏定义来指定这些值,那么改变大小只需要在一个地方修改宏定义就可以了。 经典方法 来,让我们一起学习如何定义和使用宏吧: ...