| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 653 人关注过本帖
标题:请问:printf和scanf函数是不是最后转换成windows系统调用?
只看楼主 加入收藏
suishuhao
Rank: 2
等 级:论坛游民
帖 子:89
专家分:10
注 册:2012-9-25
结帖率:61.9%
收藏
 问题点数:0 回复次数:2 
请问:printf和scanf函数是不是最后转换成windows系统调用?
请问:printf和scanf函数是不是最后都是通过系统调用来实现的?









[ 本帖最后由 suishuhao 于 2013-3-7 17:07 编辑 ]
搜索更多相关主题的帖子: windows 
2013-03-07 16:44
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
那是肯定的  最终都转化为系统调用

DO IT YOURSELF !
2013-03-07 21:01
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
给你说一下库、头文件、源文件、编译器之间的交互过程。源文件中包含头文件<stdio.h>所引入的scanf和printf仅仅是一个声明,这个声明在源文件内被编译器先和其他的代码编译,构造语法树生成.obj,这个是中间的文件,不包含scanf的实现代码。稍后在链接阶段,会把这些.obj制作为二进制的可执行文件(EXE DLL ELF DSO),那个对scanf的引用会被替换为汇编级别的函数调用,即PUSH/CALL scanf/POP这样。库就是编译器生成好的二进制文件(库有静态库和动态库之分,静态库.LIB不能自己执行,也不能被其他程序调用,而动态库.DLL可以被别的EXE DLL调用),这个文件中的代码可以被别的程序所引用,比如scanf printf的实现代码,或者是你自己编写的算法。编译器只是个字符串处理工具,处理负责语法规范的源文件,生成二进制可执行数据,至于scanf这些C函数依赖于底层的实现,和编译器可以说几乎无关。能不能帮到你

Maybe
2013-03-07 21:30
快速回复:请问:printf和scanf函数是不是最后转换成windows系统调用?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039157 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved