> #define DEBUG(log) printf("%s==>%s(%d) : %s\r\n",__TIME__,__FILE__,(uint)__LINE__,log)
对其的调用如下
显示的结果
可以发现串口printf打印的__LINE__的值并不正确
而将其赋给一个变量值时却正确,这个算是BUG吗?
解决办法
在__LINE__前面加上强制转换类型(unsiged int)就可以避免printf出错
不管了,先这样用着吧
结果
————————————补充——————————————
我将代码放在了这里,可以发现打印又正常了,所以__LINE__类型最好还是在其后面加一个强制转换类型,否则printf中,当__LINE__小于256、时需要使用%c,而大于256时需要用%u或%d