printf的实现在哪

陪妳看星星 2018-01-05 10:36:15
Windows7+VS2015 写了个控制台程序,只有一句printf打印HelloWorld,运行正常。然后把生成的exe文件拖到depends里面,查看依赖dll。
但是所有的dll里面都找不到printf函数,尤其是ucrtbased.dll里面两千多个函数,从perror到putwchar(p开头的)都有,就是没有printf。 那printf是在哪实现的?不知道你们的是不是也一样。


...全文
610 12 打赏 收藏 转发到动态 举报
写回复
用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的区别!

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧