***********#if和#ifdef的区别:https://blog.csdn.net/chenyong05314/article/details/80138599
#if !TEST_DEFINBE //该宏没有定义与宏值定义为 0的执行结果是一样的
printf("if !TEST_DEFINE\n\r"); // TEST_DEFINE未define或#define TEST_DEFINBE 0都会执行到这里
#else
printf("else if !TEST_DEFINE\n\r"); // #define TEST_DEFINBE 1会执行到这里
#endif
#ifdef TEST_DEFINBE //宏定义即为真,与定义的值0或是1没有关系
printf("ifdef TEST_DEFINE\n\r"); //#define TEST_DEFINBE 0或 #define TEST_DEFINBE 0都会执行到这里
#else
printf("else ifdef TEST_DEFINE\n\r"); //TEST_DEFINE未define会执行到这里
#endif
宏定义调试
// 自定义Log
#ifdef DEBUG
#define WCLog(...) NSLog(@"%s %d \n %@\n\n",__func__,__LINE__,[NSString stringWithFormat:__VA_ARGS__])
#else
#define WCLog(...)
#endif
============================
/** NSLog 输出宏*/
#ifdef DEBUG
#define NSLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSLog(...)
#endif
========================
//#ifdef DEBUG
//#define NSLog(...) NSLog(__VA_ARGS__)
//#else
//#define NSLog(...)
//#endif