printf()函数的一个问题

better0332 2006-08-23 04:40:15
在控制台的C或C++编程中经常要用到printf()函数,我想问它对应的库函数lib在哪里?dll是哪个?stdio.h没有printf()的执行体呀!
...全文
180 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
better0332 2006-08-23
  • 打赏
  • 举报
回复
楼上说的正是我想的,呵呵~~
晨星 2006-08-23
  • 打赏
  • 举报
回复
lib有两种。
一种只有函数入口的lib仅提供连接时需要的符号信息,运行时需要相应的dll;
另一种含有目标代码的,连接时代码被直接连进了可执行文件中,这种叫静态库。
better0332 2006-08-23
  • 打赏
  • 举报
回复
记得生成dll文件时也有相应的lib,我仔细找了找资料,C语言的静态库lib应该和dll的lib不一样!
"在使用外部函数的时候,DOS下有函数库的概念,那时的函数库实际上是静态库,静态库是一组已经编写好的代码模块,在程序中可以自由引用,在源程序编译成目标文件,最后要链接成可执行文件的时候,由link程序从库中找出相应的函数代码,一起链接到最后的可执行文件中。DOS下C语言的函数库就是典型的静态库。库的出现为程序员节省了大量的开发时间,缺点就是每个可执行文件中都包括了要用到的相同函数的代码,占用了大量的磁盘空间,在执行的时候,这些代码同样重复占用了宝贵的内存。Win32环境中,程序链接的时候仍然要使用函数库来定位函数信息,只不过由于函数代码放在DLL文件中,库文件中只留有函数的定位信息和参数数目等简单信息,这种库文件叫做导入库,一个DLL文件对应一个导入库"--摘自罗云彬汇编教程
zez 2006-08-23
  • 打赏
  • 举报
回复
楼主,谁告诉你的lib就一定有dll对应啊??
lib是库.要源码自己去网上下载去..
better0332 2006-08-23
  • 打赏
  • 举报
回复
只是printf的声明而已,函数体呢(代码)?楼上说的是libc.lib吧,那它对应的dll呢?
saoyu 2006-08-23
  • 打赏
  • 举报
回复
标准C库里,libc.a
链接的时候用到
robin_yao 2006-08-23
  • 打赏
  • 举报
回复
我打开stdio.h可以看到printf的声明啊
_CRTIMP int __cdecl printf(const char *, ...);

69,382

社区成员

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

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