宏定义的时候可变参数可以用__VA_ARGS__传递,但是只有C99编译器支持
#define debug_printf(...) \
{\
char dataOut2[256];\
sprintf( dataOut2, __VA_ARGS__);\
uart_out(( uint8_t * )dataOut2, strlen( dataOut2 ));\
}
在这里注意vprintf 和 printf区别
vsprintf和sprintf()区别
void dp(char *arg, ...)
{
char dataOut2[256];
va_list vl;
__va_start(vl, arg);
vsprintf(dataOut2, arg, vl);
__va_end(vl);
uart_out(( uint8_t * )dataOut2, strlen( dataOut2 ));
}