代码

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 效果

C语言 自带换行的 printf 函数相关推荐

  1. C语言 va_start / va_end / va_arg 自定义 printf 函数 - C语言零基础入门教程

    目录 一.前言 二.函数不定长参数简介 1.va_start 2.va_arg 3.va_end 三.win32 控制台版本 四.MFC 对话框版本 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : ...

  2. c语言带默认参数吗,嵌入式C语言可以带“默认参数”的函数吗

    (文章来源:嵌入式时代) 使用C++开发过程序时,定义函数可以指定默认参数,例如 void fun(int x, int y=3); 在调用 fun() 时第二个参数可以不传递,此时 fun() 函数 ...

  3. c语言支持默认参数吗,嵌入式C语言可以带“默认参数”的函数吗

    描述 (文章来源:嵌入式时代) 使用C++开发过程序时,定义函数可以指定默认参数,例如 void fun(int x, int y=3); 在调用 fun() 时第二个参数可以不传递,此时 fun() ...

  4. 带你学C带你飞 | printf函数 | 变量 | 常量和宏定义 | 数据类型 | 取值范围 | 字符串 | 运算符

    文章目录 一.printf函数 1.printf函数 2.printf函数课后作业 二.变量 1.变量 2.变量课后作业 三.常量和宏定义 1.常量和宏定义 2.常量和宏定义的课后作业 四.数据类型 ...

  5. c语言--余数正负判断,printf函数占位符

    1.余数正负判断 负数求模的规则是,结果的正负号由第一个运算数的正负号决定的. 11%-5->>1 -11%-5->>-1 -11%5->>-1 第一个运算数的正负 ...

  6. C语言封装带省略参数的函数,C与C++的函数声明中省略参数的不同意义

    一直都以为C/C++中形如 int func(); 这样的函数声明其意义就是一个参数 void(没有参数)的函数.然而今天在看C++的时候突然看到这么一句: 对于带空参数表的函数,C和C++有很大的不 ...

  7. c语言实现带加减乘除以及单元函数的计算器

    整体思路是逆波兰+计算后缀表达式 其中比较特殊的地方是实现了单元与多元函数的计算 首先是新引入了一个栈来存储函数名,然后在右括号的结算后把函数名push进目标栈 多元函数的逗号','处理类似右括号') ...

  8. char un 数组printf_c语言中能不能用printf函数直接输出数组?如printf(%d,a[3][3]);

    展开全部 限制在C语言中,利用printf直接输出数组是不可以的. 但是你32313133353236313431303231363533e58685e5aeb931333337616538的做法是可 ...

  9. 【c语言】带你快速理解函数的传值和传址

    创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>

最新文章

  1. 嵌入式开发「坑」太多?MathWorks 高级工程师教你 debug
  2. vba获取通达信光标的坐标数据_「高阶应用」谈一下VB6和VBA的坐标系统
  3. java queue 线程安全_java并发编程之线程安全方法
  4. Redis入门到精通只需要三篇博客
  5. python mysql批量更新_Python批量删除mysql中千万级大量数据的脚本分享
  6. CountDownLatch应用及原理
  7. 无锁链表的c++实现
  8. 动态切换父元素隐藏和显示里面的子元素的动画会再一次执行吗?
  9. [转]在资源管理器中使鼠标右键增加一个命令,运行cmd,同时使得当前路径为资源管理器当前的目录...
  10. 【ES6(2015)】Array数组
  11. 聆听无声的话语:手把手教你用ModelArts实现手语识别
  12. 物体非等比缩放后的法线处理
  13. Python使用marshal模块操作二进制文件
  14. 企业价值链与价值评价体系:88页华为绩效管理与绩效考核
  15. WinAPI: SetRectEmpty、IsRectEmpty
  16. 王者经典猎马技术之昨日重现
  17. Atitit r2017 r5 doc list on home ntpc.docx 驱动器 D 中的卷是 p2soft 卷的序列号是 9AD0-D3C8 D:\ati\r2017 v4 r
  18. 第8章 卷积神经网络
  19. C case和UVM TB的交互,tube_print, event_sync
  20. 深度探索二维码及其应用

热门文章

  1. shell 数组及其遍历的3种方法
  2. 星巴克中国2021秋日限定系列上市
  3. 国际支付对接,信用卡支付对接,stripe的使用
  4. 隐私计算FATE-多分类神经网络算法测试
  5. Spring中对象的初始化和销毁
  6. cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local ..
  7. 吉他入门第二讲~~~~~左手弹奏基础
  8. Dubbo技术知识总结之六——Dubbo服务调用链路
  9. 超强牛人语录50条,经典中的经典
  10. kubernetes 服务发现与注册个人想法