如何实现向C添加非c功能的库?

4 c

有人可以解释一下如何在C中添加额外的功能吗?

例如,C没有输出函数,所以你可以通过包含stdio.h来使用printf(),C不知道如何打开MessageBox,所以你包含并使用MessageBox()等.

但是这个功能是如何实现的呢?

你是否必须以某种方式使用汇编程序并访问视频RAM以获得输出或类似的东西?

我知道MessageBox(),例如,是WinAPI的一部分,但它是如何实现的(尽管WinAPI是用C实现的)?

tva*_*son 7

与系统交互的任何功能都是通过系统调用机制执行的.从本质上讲,它提供了代码和操作系统之间的接口.您提到的库函数围绕各种系统调用包含一些方便的功能,以便您的代码更容易在更高级别与系统交互.但是,您可以编写代码来直接执行此操作.有关更多信息,请查看syscallioctl函数.在Windows上,有更多系统调用,它们分散在Windows API中的各个库中.这道博博士的文章在Windows系统调用进入更多细节