有两种类型的宏 - function-like macros和object-like macros。我可以对类似对象的宏执行各种检查/操作:
#ifdef _SOME_OBJECT_LIKE_MACRO // check if some object-like macro is defined
#undef _SOME_OBJECT_LIKE_MACRO // undefine some object-like macro
#endif
#define _SOME_OBJECT_LIKE_MACRO 0xff
#ifdef
,#ifndef
和#undef
是否可以使用类似函数的宏?例如:
#ifdef _SOME_FUNCTION_LIKE_MACRO() // check if some function-like macro is defined
#undef _SOME_FUNCTION_LIKE_MACRO() // undefine some function-like macro
#endif
#define _SOME_FUNCTION_LIKE_MACRO() printf("This is such a useful macro!!!\n");
这有用吗?如果没有,我怎么能......
......一个类似函数的宏?
答案 0 :(得分:2)
#ifdef
,#ifndef
和#undef
使用类似函数的宏,但您只需要使用裸宏名称。不需要括号:
#ifdef _SOME_FUNCTION_LIKE_MACRO
#undef _SOME_FUNCTION_LIKE_MACRO
#endif