一般在C程序中都会看到宏的定义与使用define,一般会有下面几种用法,
1、在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。
#define M (a+b) 它的作用是指定标识符M来代替表达式(a+b)。在编写源程序时,所有的(a+b)都可由M代替
2、判断某个宏是否被重复定义,宏的解除,如下
#if defined a
#undef a
#define a 200
#endif
上述语句检验a是否被定义,如果被定义,则用#undef语句解除定义,并重新定义a为200
#if defined a
#undef a
#define a 200
#endif
上述语句检验a是否被定义,如果被定义,则用#undef语句解除定义,并重新定义a为200
相类似用法
同样,检验a是否定义:
#ifndef a //如果a没有被定义
#define a 100
#endif
以上所用的宏中:#undef为解除定义,#ifndef是if not defined的缩写,即如果没有定义。
一般.h文件里最外层的
#if !defined XXX_XXX
#define XXX_XXX
#endif
是为了防止这个.h头文件被重复include。
#if !defined XXX_XXX
#define XXX_XXX
#endif
是为了防止这个.h头文件被重复include。
3、有参数宏的定义
#define M(y) ((y)*(y)+3*(y)) /*宏定义*/
k=M(5); /*宏调用*/
#define M(y) ((y)*(y)+3*(y)) /*宏定义*/
k=M(5); /*宏调用*/