出于性能的考虑,标准c库中的某些函数是以宏的方式实现的。
大部分情况下这都是一个有益的方式,但是在跟踪或调试程序时,可能会使你产生困惑。
此时可以使用undef来避免这个问题。
例:
默认情况下
#include <ctype.h>
some code...
....
isspace(c); //此时isspace是一个宏
....
some code...
使用undef
#include <ctype.h>
some code...
....
#undef isspace
isspace(c); //此时isspace是一个真正的函数实现
....
some code...