社区
C语言
帖子详情
printf的实现在哪
陪妳看星星
2018-01-05 10:36:15
Windows7+VS2015 写了个控制台程序,只有一句printf打印HelloWorld,运行正常。然后把生成的exe文件拖到depends里面,查看依赖dll。
但是所有的dll里面都找不到printf函数,尤其是ucrtbased.dll里面两千多个函数,从perror到putwchar(p开头的)都有,就是没有printf。 那printf是在哪实现的?不知道你们的是不是也一样。
...全文
682
12
打赏
收藏
printf的实现在哪
Windows7+VS2015 写了个控制台程序,只有一句printf打印HelloWorld,运行正常。然后把生成的exe文件拖到depends里面,查看依赖dll。 但是所有的dll里面都找不到printf函数,尤其是ucrtbased.dll里面两千多个函数,从perror到putwchar(p开头的)都有,就是没有printf。 那printf是在哪实现的?不知道你们的是不是也一样。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
是c语言下非常常用的一个函数,几乎每个程序员在一开始第一个学的函数应该就是
printf
吧! 今天来
实现
一个
printf
函数,虽然
printf
是我们常用的函数,但
实现
起来其实还是蛮考基础的! 下面一步一步带大家
实现
: 一. 编写一个入口函数并导入标准io头文件 #include<stdin.h> int main(){ } 二.
printf
函数准备工作 前言...
printf
函数的
实现
printf
函数的
实现
自己之前做了一个用于串口发送数据的函数,觉得调用的时候有点麻烦,于是想着自己用
printf
函数去
实现
用于串口发送数据。在csdn上找了一些,发现没有自己想要的,有也是有一些错误的,于是,我在他们的基础上做了一个
printf
函数,包教包会。 还是老习惯,先来看看本片文章的思维导图。 1.堆栈以及函数调用的基础知识 1.堆栈 这里对堆栈的定义以及一些性质我就不过多讲解了,我只将和
printf
函数有关的知识,栈又叫堆栈,它的生长方向既可以向上生长,也可以向下生长向上生长的最主要的代表就是
printf
内部原理和
实现
(你想知道的C语言 1.2)
printf
学习
printf
的底层
实现
方式
printf
是 C 语言的一个最基本的内建函数。它是一个可变形参的函数,可以接纳任意数目任意类型的参数。最近项目上有个需求,用户希望自定义可变参数的函数,来
实现
类似
printf
的功能,方便跨平台移植代码。虽然我也不明白这个需求,但是必须得研究一下
printf
函数的底层
实现
了,于是边学边记录吧。
printf
的参数保存 在 C/C++ 中,对函数参数的扫描是从右往左的。C/C++ 的函数参数是通过栈的方式来给函数传参数的。 注1:栈是一种 LIFO(last in first out) 数据
C中
printf
函数的
实现
原理
一、
printf
函数的
实现
原理 在C/C++中,对函数参数的扫描是从后向前的。C/C++的函数参数是通过压入堆栈的方式来给函数传参数的(堆栈是一种先进后出的数据结构),最先压入的参数最后出来,在计算机的内存中,数据有2块,一块是堆,一块是栈(函数参数及局部变量在这里),而栈是从内存的高地址向低地址生长的,控制生长的就是堆栈指针了,最先压入的参数是在最上面,就是说在所有参数的最后面,最后压入的参数在最下面,结构上看起来是第一个,所以最后压入的参数总是能够被函数找到,因为它就在堆栈指针的上方。
printf
的第一
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章