代码
visual studio 版本
#define _CRLF(a) #a
#define CRLF() _CRLF(\n)
#define _PRINT_RN(__s1__, __s2__) __s1__##__s2__
#define PRINT_RN(__s1__, __s2__) _PRINT_RN(__s1__, __s2__)
#define _u_print(__s1__, ...) printf(__s1__, __VA_ARGS__)
#define u_print(__s1__, ...) _u_print(PRINT_RN(__s1__, CRLF()), __VA_ARGS__)
keil 版本
#define CR_LF_IS_WHITCH 0
#if (CR_LF_IS_WHITCH == 0)
#define CRLF_STR \r\n
#elif (CR_LF_IS_WHITCH == 1)
#define CRLF_STR \n
#elif (CR_LF_IS_WHITCH == 2)
#define CRLF_STR \r
#endif
#define _PRINT_RN(__s1__, __s2__) __s1__#__s2__
#define PRINT_RN(__s1__, __s2__) _PRINT_RN(__s1__, __s2__)
#define _u_print(__s1__, ...) U_Printf(__s1__, __VA_ARGS__)
#define u_print(__s1__, ...) _u_print(PRINT_RN(__s1__, CRLF_STR), __VA_ARGS__)
效果
visual studio 效果
keil 效果