在STM32上试了下,编译不过。
猜测,可以与编译器是有关的。也可能是作者错了。
我用gcc编译
UTIL_ARG1有两个参数,但是中有LED一个参数。
可能不同的编译器,对这样的错误有不一样的处理方法。
VS2010
结果与你的也是一样的,是OK
但有个警告
printf("NO!");
打印的是OK, 但我感觉应该是NO!
反之亦然。这本书是shaoziyang写的,希望他看到。
你在单片机上试了么?
用LED,看看结果是个什么
#define LED 1,0这个编译器会默认为LED ==1,0会被抛掉
#define UTIL_ARG1(a,b) a #define UTIL_ARG2(a,b) b
这两个宏啥不直接用这样的定义呢?
#define UTIL_ARG1(a) a #define UTIL_ARG2(b) b