社区
C语言
帖子详情
printf的实现在哪
陪妳看星星
2018-01-05 10:36:15
Windows7+VS2015 写了个控制台程序,只有一句printf打印HelloWorld,运行正常。然后把生成的exe文件拖到depends里面,查看依赖dll。
但是所有的dll里面都找不到printf函数,尤其是ucrtbased.dll里面两千多个函数,从perror到putwchar(p开头的)都有,就是没有printf。 那printf是在哪实现的?不知道你们的是不是也一样。
...全文
645
12
打赏
收藏
printf的实现在哪
Windows7+VS2015 写了个控制台程序,只有一句printf打印HelloWorld,运行正常。然后把生成的exe文件拖到depends里面,查看依赖dll。 但是所有的dll里面都找不到printf函数,尤其是ucrtbased.dll里面两千多个函数,从perror到putwchar(p开头的)都有,就是没有printf。 那printf是在哪实现的?不知道你们的是不是也一样。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵4老师
2018-01-08
打赏
举报
回复
C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\output.c
自信男孩
2018-01-08
打赏
举报
回复
1
printf是C语言库函数,它的实现若是找源码,需要找库的实现源码;如果是调用位置,应该是以动态库的形式存在的。基本的动态库。
陪妳看星星
2018-01-06
打赏
举报
回复
应该是在msvcrtd.lib里面,还是编译成静态代码了。
另外我在网上找到一篇文章:
http://tieba.baidu.com/p/1883427237
。文章里提到的这个输入表窗口是怎么打开的?
幻夢之葉
2018-01-06
打赏
举报
回复
VS安装目录\VC\crt\src
真相重于对错
2018-01-06
打赏
举报
回复
引用 3 楼 陪妳看星星的回复:
不是问printf源码怎么实现的,是问源码编译后的东西(obj、lib、dll)在哪?
没研究过那个,不过仔细想想,你即然有了源码,干吗要编译进dll,lib
陪妳看星星
2018-01-06
打赏
举报
回复
我的编译选项是/MDd,不是静态编译。
陪妳看星星
2018-01-06
打赏
举报
回复
引用 2 楼 paschen 的回复:
可能编译成静态代码了
我倒觉得可能是depends有问题,没有显示全
陪妳看星星
2018-01-06
打赏
举报
回复
不是问printf源码怎么实现的,是问源码编译后的东西(obj、lib、dll)在哪?
paschen
2018-01-06
打赏
举报
回复
你可以拿我写的这个工具查看: http://download.csdn.net/download/paschen/9428733 具体描述可看:http://blog.csdn.net/paschen/article/details/50640421
paschen
2018-01-06
打赏
举报
回复
printf里实际调用的好像是_vfprintf,后者又调用__stdio_common_vsprintf
paschen
2018-01-06
打赏
举报
回复
可能编译成静态代码了
真相重于对错
2018-01-06
打赏
举报
回复
建议研究一下,dll和lib的区别!
printf
函数的
实现
printf
函数的
实现
自己之前做了一个用于串口发送数据的函数,觉得调用的时候有点麻烦,于是想着自己用
printf
函数去
实现
用于串口发送数据。在csdn上找了一些,发现没有自己想要的,有也是有一些错误的,于是,我在他们的基础上做了一个
printf
函数,包教包会。 还是老习惯,先来看看本片文章的思维导图。 1.堆栈以及函数调用的基础知识 1.堆栈 这里对堆栈的定义以及一些性质我就不过多讲解了,我只将和
printf
函数有关的知识,栈又叫堆栈,它的生长方向既可以向上生长,也可以向下生长向上生长的最主要的代表就是
printf
的
实现
原理
要了解变参函数的
实现
,首先我们的弄清楚几个问题: 1: 该函数有几个参数。 2: 该函数怎样去访问这些参数。 3: 在访问完成后,如何从堆栈中释放这些参数。 函数变参 对于c语言,它的调用规则遵循_cdedl调用规则。 在_cdedl规则中: 1. 参数从右到左依次入栈 2. 调用者负责清理堆栈 3. 参数的数量类型不会导致编译阶段的错误
printf
的声明: int _cdecl
printf
(const char* for...
手把手教你
实现
printf
函数(C语言方式)
在日常的嵌入式开发过程中,常常会用到格式化输出的功能。比如在LCD屏幕上,显示需要的字符,如果没有格式化输出,用起来将会是十分麻烦。本文运用变参函数的知识,提供一种
实现
printf
的格式化输出的
实现
方法供大家参考。
实现
思路 通过一个个读取需要打印的字符,如果遇到格式化输出的字符,则根据格式化规则,用变参函数的方式取读取到参数,然后将参数拆解输出出来。 主要难点为变参函数,下面介绍变参函数。 变参函数学习 1. 定义 即:函数数目可变的函数。 变参函数原型 type VarArgFunc(type Fi
printf
源代码
实现
转载自品略图书馆http://www.pinlue.com/article/2020/03/2222/1210046055343.html 打开Source Insight来阅读EduOS的源代码,我们在stdio.c里找到了
printf
的
实现
代码.首先看看对
printf
的定义: int
printf
(const char *cntrl_string, ...) 第一个参数cntr...
C/C++面试:
printf
实现
原理
在C/C++中,对函数参数的扫描是从后向前的。C/C++的函数参数值通过压入堆栈的方式来给函数传参数的。 最先压⼊的参数最后出来,在计算机的内存中,数据有 2 块,⼀块是堆,⼀块是栈(函数参数及局部变量在这⾥),⽽栈是从内存的⾼地址向低地址⽣⻓的,控制⽣⻓的就是堆栈指针了,最先压⼊的参数是在最上⾯,就是说在所有参数的最后⾯,最后压⼊的参数在最下⾯,结构上看起来是第⼀个,所以最后压⼊的参数总是能够被函数找到。 因为它就在堆栈指针的上方。
printf
的第一个被找到的参数就是那个字符指针,就是被双引号括起来的那.
C语言
70,020
社区成员
243,264
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章