如果在写程序的时候,宏目前的功能不满足当前的程序或者不满足当前我们想要得到的效果,但是我们知道,直接修改宏内代码是个不太好的习惯,那有没有办法可以不动我们程序内本身就有的东西,然后修改掉宏实现的内容呢?这里就有一个新的操作符——#undef,它的作用并不是修改一个宏,而是移除,那怎么去使用的?它的语法格式是这样的:
#undef NAME
>- 那现在可以使用一下,看看#undef的功能是不是和我说的是一样的:
intmain() { inta=1; intb=2; intc=MAX(a++, b++); printf("a= %d b= %d c=%d", a, b, c); return0; }
可以看到是有报错的,那现在在编译器眼中,就没有了MAX这个宏,这个时候就可以在写一个MAX的宏来实现我们现在想要实现的内容了,可以用代码试验一下:
intmain() { inta=1; intb=2; intc=MAX(a++, b++); printf("a= %d b= %d c=%d", a, b, c); return0; }