我在头文件中为我编写的共享对象定义了一个 DEBUG_PRINT 宏,如下所示:
lib_mylib.h:
#ifdef DEBUG
#define DEBUG_TEST 1
#else
#define DEBUG_TEST 0
#endif
#define DEBUG_PRINT(fmt, args...) \
do { if (DEBUG_TEST) fprintf(stderr, "%s:%d:%s(): " fmt, \
__FILE__, __LINE__, __FUNCTION__, ##args); } while (0)
从使用这个库的 ac 文件中,我设置了
#DEFINE DEBUG 1
这导致 DEBUG_PRINT 语句在共享对象中被调用时成功使用。但是,当我在我的 c 文件中使用该语句时,它会编译但不会执行 - 这是为什么呢?