该说法有误。 应该说 所有的编程语言都可以(都能够)调用API函数,但是并不是一定要调用API。
不用API照样编软件,只不过涉及系统底层的功能才需要用到API。
API只是微软提供的编程接口,用于调用操作系统的某些功能。不但高级语言可以调用API,汇编语言也可以调用API 。
不只是微软提供API,其它公司或个人的产品也可以提供API--第三方API,比如我写了一个给姓名打分的DLL,留有一个函数接口name。 你拿到这个DLL之后,只要按要求在程序里声明NAME函数,并且按规定的格式调用它,把姓名传给函数,函数就返回姓名得分。 你只要使用这个现成的功能,并不需要了解它是怎么实现的。
不一定,要看情景:
你用色语言编写windows程序,MFC程序,QT程序或者你用色虾普、嘉娃在windows上编写用户态程序,最终都会掉win32 api,不然你休想显示一个窗口出来。像不用操作系统底层的API等于否认操作系统存在的必要,直接对着裸机编程好了。
然而,用色语言写的Windows操作系统内核的一部分,就不一定会掉任何API,因为他下面就是硬件,没得API掉了。
当然,有一种极限情况不需要API,这种程序没有输入与没有输出,也不访问任何抽象或具体的设备,这种程序查看其反汇编代码,可以发现的确没有调用一个API。