C语言 与 API 函数

qq_24729629 2015-11-12 11:47:48
API 函数是C语言写的吗? 其他语言如何调用API函数?
API 的动态链接文件也是C语言写的?

C语言里面的printf() 是如何最终实现在 控制台窗体下面输出的?
黑窗体是操作系统GDI 函数绘制出来的吗?
如果是,C语言难道还要去调用API 函数来实现printf()函数的功能吗?
如果不是,C语言能直接通过printf()函数操控控制计算机硬件设备吗?
其他语言也是可以不经过操作系统直接可以操控计算机硬件的吗?

请高手详细解释!!!!感激不尽!!最好可以附带详细的参考资料地址!!!!!
...全文
453 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2015-12-13
  • 打赏
  • 举报
回复
引用 7 楼 u010165006 的回复:
BIOS是固件,是软件,也可以认为是硬件的一部分,比如显卡、网卡也有它的BIOS(广义),用户软件—>操作系统API->驱动->硬件(BIOS)。未必准确。
如果没有操作系统,直接对硬件编程,就是:用户软件—>硬件(BIOS),这样就是白手起家了(调用API可以省去自己编写某个具体功能的函数,在更高的层面上工作),可以写个小操作系统(广义)。
ooolinux 2015-12-13
  • 打赏
  • 举报
回复
引用 6 楼 u010165006 的回复:
[quote=引用 3 楼 qq_24729629 的回复:] 如果没有安装操作系统,难道就不能实现printf() 吗,操作系统也是程序,语言不是应该独立于操作系统,所以感觉printf()应该不是用的API 。是否不经过操作系统的处理,自己去执行了显示的图形的命令,也就是说printf() 本身就可以起到类似API函数的功能,单它与操作系统无关。就像给计算机安装系统之前不是也能进行Dos界面的操作吗? 您确定printf()是调用的API吗?
没有操作系统,你可以通过BIOS调用来显示字符。(BIOS是Basic Input Ouput System,是主板上的一块芯片里面的固件代码,是最低级的软件:用户软件->操作系统API->BIOS) DOS也是操作系统,通过DOS调用也可以显示字符。 你可以简单学习一下汇编语言,就会明白BIOS调用和DOS调用,其实就是中断处理例程,可以理解为汇编层面的API,操作系统的API可以理解为C接口的。 以上是我的个人理解,未必准确。 [/quote] BIOS是固件,是软件,也可以认为是硬件的一部分,比如显卡、网卡也有它的BIOS(广义),用户软件—>操作系统API->驱动->硬件(BIOS)。未必准确。
ooolinux 2015-12-13
  • 打赏
  • 举报
回复
引用 3 楼 qq_24729629 的回复:
如果没有安装操作系统,难道就不能实现printf() 吗,操作系统也是程序,语言不是应该独立于操作系统,所以感觉printf()应该不是用的API 。是否不经过操作系统的处理,自己去执行了显示的图形的命令,也就是说printf() 本身就可以起到类似API函数的功能,单它与操作系统无关。就像给计算机安装系统之前不是也能进行Dos界面的操作吗? 您确定printf()是调用的API吗?
没有操作系统,你可以通过BIOS调用来显示字符。(BIOS是Basic Input Ouput System,是主板上的一块芯片里面的固件代码,是最低级的软件:用户软件->操作系统API->BIOS) DOS也是操作系统,通过DOS调用也可以显示字符。 你可以简单学习一下汇编语言,就会明白BIOS调用和DOS调用,其实就是中断处理例程,可以理解为汇编层面的API,操作系统的API可以理解为C接口的。 以上是我的个人理解,未必准确。
  • 打赏
  • 举报
回复
引用 3 楼 qq_24729629 的回复:
[quote=引用 2 楼 akirya 的回复:] API是应用接口不仅仅指是win32 api 像iOS下的,有OC接口的api API 函数是C语言写的吗? 其他语言如何调用API函数? 不一定是C。 一般其他语言都支持调用C接口的函数。 API 的动态链接文件也是C语言写的? 不一定是C。 C语言里面的printf() 是如何最终实现在 控制台窗体下面输出的? printf -> 系统API -> 驱动 -> 硬件 驱动向硬件发送不同的指令,就显示出来了。 黑窗体是操作系统GDI 函数绘制出来的吗? 是 如果是,C语言难道还要去调用API 函数来实现printf()函数的功能吗? 是,需要使用系统的API 如果不是,C语言能直接通过printf()函数操控控制计算机硬件设备吗? 一般都会经过系统API的 其他语言也是可以不经过操作系统直接可以操控计算机硬件的吗? 理论是可以的,实际上一般都经过操作系统。
如果没有安装操作系统,难道就不能实现printf() 吗,操作系统也是程序,语言不是应该独立于操作系统,所以感觉printf()应该不是用的API 。是否不经过操作系统的处理,自己去执行了显示的图形的命令,也就是说printf() 本身就可以起到类似API函数的功能,单它与操作系统无关。就像给计算机安装系统之前不是也能进行Dos界面的操作吗? 您确定printf()是调用的API吗?[/quote] 只是说一般,你完全可以在裸机上实现printf,直接调用硬件接口,这样就需要不同的硬件编写不同的代码,硬件多少种?不同牌子不同型号,而且一直在更新,这工作量怎么说? 没特殊情况,没人这么干。 生产硬件的厂商按照操作系统的驱动规格提供驱动。这样不更新操作系统的情况下,新硬件直接可以使用。不用重新开发软件就可以使用新硬件,想想不觉得激动么。
缘中人 2015-11-13
  • 打赏
  • 举报
回复
看看api的接受 具体用啥语言写的就不清楚了,可能是c,c++,后期是不是。net
qq_24729629 2015-11-13
  • 打赏
  • 举报
回复
引用 3 楼 qq_24729629 的回复:
[quote=引用 2 楼 akirya 的回复:] API是应用接口不仅仅指是win32 api 像iOS下的,有OC接口的api API 函数是C语言写的吗? 其他语言如何调用API函数? 不一定是C。 一般其他语言都支持调用C接口的函数。 API 的动态链接文件也是C语言写的? 不一定是C。 C语言里面的printf() 是如何最终实现在 控制台窗体下面输出的? printf -> 系统API -> 驱动 -> 硬件 驱动向硬件发送不同的指令,就显示出来了。 黑窗体是操作系统GDI 函数绘制出来的吗? 是 如果是,C语言难道还要去调用API 函数来实现printf()函数的功能吗? 是,需要使用系统的API 如果不是,C语言能直接通过printf()函数操控控制计算机硬件设备吗? 一般都会经过系统API的 其他语言也是可以不经过操作系统直接可以操控计算机硬件的吗? 理论是可以的,实际上一般都经过操作系统。
如果没有安装操作系统,难道就不能实现printf() 吗,操作系统也是程序,语言难道不是应该独立于操作系统吗?所以感觉printf()应该不是用的API 。是否不经过操作系统的处理,自己去执行了显示的图形的命令,也就是说printf() 本身就可以起到类似API函数的功能,单它与操作系统无关。就像给计算机安装系统之前不是也能进行Dos界面的操作吗? 您确定printf()是调用的API吗?
qq_24729629 2015-11-13
  • 打赏
  • 举报
回复
引用 2 楼 akirya 的回复:
API是应用接口不仅仅指是win32 api 像iOS下的,有OC接口的api API 函数是C语言写的吗? 其他语言如何调用API函数? 不一定是C。 一般其他语言都支持调用C接口的函数。 API 的动态链接文件也是C语言写的? 不一定是C。 C语言里面的printf() 是如何最终实现在 控制台窗体下面输出的? printf -> 系统API -> 驱动 -> 硬件 驱动向硬件发送不同的指令,就显示出来了。 黑窗体是操作系统GDI 函数绘制出来的吗? 是 如果是,C语言难道还要去调用API 函数来实现printf()函数的功能吗? 是,需要使用系统的API 如果不是,C语言能直接通过printf()函数操控控制计算机硬件设备吗? 一般都会经过系统API的 其他语言也是可以不经过操作系统直接可以操控计算机硬件的吗? 理论是可以的,实际上一般都经过操作系统。
如果没有安装操作系统,难道就不能实现printf() 吗,操作系统也是程序,语言不是应该独立于操作系统,所以感觉printf()应该不是用的API 。是否不经过操作系统的处理,自己去执行了显示的图形的命令,也就是说printf() 本身就可以起到类似API函数的功能,单它与操作系统无关。就像给计算机安装系统之前不是也能进行Dos界面的操作吗? 您确定printf()是调用的API吗?
  • 打赏
  • 举报
回复
API是应用接口不仅仅指是win32 api 像iOS下的,有OC接口的api API 函数是C语言写的吗? 其他语言如何调用API函数? 不一定是C。 一般其他语言都支持调用C接口的函数。 API 的动态链接文件也是C语言写的? 不一定是C。 C语言里面的printf() 是如何最终实现在 控制台窗体下面输出的? printf -> 系统API -> 驱动 -> 硬件 驱动向硬件发送不同的指令,就显示出来了。 黑窗体是操作系统GDI 函数绘制出来的吗? 是 如果是,C语言难道还要去调用API 函数来实现printf()函数的功能吗? 是,需要使用系统的API 如果不是,C语言能直接通过printf()函数操控控制计算机硬件设备吗? 一般都会经过系统API的 其他语言也是可以不经过操作系统直接可以操控计算机硬件的吗? 理论是可以的,实际上一般都经过操作系统。

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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