编程时候底层函数的来源

我们编程时候会用到很多函数,在此基于鄙人肤浅的认识。先对他们分下类。

一:C运行时库函数   C++运行时库函数

这些东西只要是安装编译器 ,比如VC VC++之类的玩意 都会自带的。

二:API函数

API函数是操作系统为方便用户设计应用程序而提供的实现特定功能的函数,API函数也是C语言的函数实现的。

WIN32 API也就是MicrosoftWindows32位平台的应用程序编程接口,微软的操作系统和苹果的操作系统提供的API估计是不一样的。

三:系统开发框架库

比如什么MFC   QT 这些玩意  ,他们为了把一些常见的功能 使用 C运行时库函数 & C++运行时库函数 & API函数实现一下,然后封装成函数。

供开发者调用。

四:其他应用级别的库。 比如慧都上面卖的那些控件 大都是基于以上C运行时库函数 & C++运行时库函数&API函数开发的。

PS:

我估计啊,只要CPU的指令集类似,C的代码是完全跨平台的。但是API则不同,API函数是操作系统的提供的函数。

不论什么函数 ,玩出什么样的花样来,最终还是要靠汇编实现的。

C语言是一门语言 ,C++是C语言的加强版。  不过C库 C++库和 不是语言,而是用语言开发出的函数的集合。

API函数集是由操作系统或开发环境提供的,以DLL的形式出现。

其中有三个最主要的动态连接库:Windows内核库(Kernel32.dll)、Windows用户界面管理库(User32.dll)、Windows图形设备界面库(Gdi32.dll),这些动态连接库共同构成了Win32 API函数。
Windows内核库(Kernel32.dll):所有底层的核心功能如任务管理、内存管理,进程线程文件管理等的函数都在这个动态连接库中;
Windows用户界面管理库(User32.dll):窗口管理,菜单管理以及通信等相关函数都在该动态连接库中;
Windows图形设备界面库(Gdi32.dll):集合了关于图形设备的所有函数。
所有这三个动态连接库中的函数原型说明都在头文件windows.h中声明,所以在使用API进行编程序的时候别忘了包括该头文件。

当然了,这只是主要的三个动态连接库,其他比较常用的还有网络服务(Winsock32.dll)、多媒体服务(Winmm.dll)等等。

××××××××××××××

由于鄙人能力较浅,如有总结不对的地方 请多多提醒。

谢谢

时间: 2024-12-12 13:48:45

编程时候底层函数的来源的相关文章

Windows客户端C/C++编程规范“建议”——函数

1 函数 1.1 代码行数控制在80行及以内 等级:[要求] 说明:每个函数的代码行数控制应该控制在80行以内.如果超过这个限制函数内部逻辑一般可以拆分.如果试图超过这个标准,请列出理由.但理由不包含如下: 无法拆分. 流程内部逻辑复杂,无需拆分,即使拆分了,拆分的函数也不会被其他地方用到.(解释:拆分可以减少代码行数,提炼后的函数可以方便读者快速理解函数逻辑并定位问题.) 1.2 代码列数控制在100字符及以内 等级:[要求] 说明:每行代码不可以超过100字符.如果超过这个字符数,代码的美观

C++ Primer 学习笔记_34_面向对象编程(5)--虚函数与多态(二):纯虚函数、抽象类、虚析构函数、动态创建对象

C++ Primer 学习笔记_34_面向对象编程(5)--虚函数与多态(二):纯虚函数.抽象类.虚析构函数.动态创建对象 一.纯虚函数 1.虚函数是实现多态性的前提 需要在基类中定义共同的接口 接口要定义为虚函数 2.如果基类的接口没办法实现怎么办? 如形状类Shape 解决方法 将这些接口定义为纯虚函数 3.在基类中不能给出有意义的虚函数定义,这时可以把它声明成纯虚函数,把它的定义留给派生类来做 4.定义纯虚函数: class <类名> { virtual <类型> <函

编程题:函数gets()与scanf()的区别。

#include<stdio.h> void main() {char str1[20],str2[20]; gets(str1); scanf("%s",str2); printf("str1:%s\n",str1); printf("str2:%s\n",str2); } 编程题:函数gets()与scanf()的区别.,布布扣,bubuko.com

编程题:函数strlen()的使用

#include<stdio.h> #include<string.h> void main() { int i; char str1[20],str2[20]; gets(str1);gets(str2); for(i=0;str2[i]!='\0';i++); printf("%s:%d\n",str1,strlen(str1)); printf("%s:%d\n",str2,i); printf("%s:%d\n",

bash脚本编程之十 函数

bash脚本编程之十 函数详解 ·函数(function) function翻译成函数对于中文来讲不是特别的精确,因为function的真正意思是功能,理论上function这个英文单词既可以翻译成函数,又可以翻译成功能,但是我们数学意义上的函数和程序中的函数并不是同一个概念,所以我们如果把function称为功能可能会更合适一点,但是我们大家约定俗成通常都称其为函数,函数是实现结构化编程的一个重要思想,其主要目的是为了实现代码重用 ·库(library) 库是由一些共享对象(so->share

C++ Primer 学习笔记33_面向对象编程(4)--虚函数与多态(一):多态、派生类重定义、虚函数的访问、 . 和-&gt;的区别、虚析构函数、object slicing与虚函数

C++ Primer学习笔记33_面向对象编程(4)--虚函数与多态(一):多态.派生类重定义.虚函数的访问. . 和->的区别.虚析构函数.object slicing与虚函数 一.多态 多态可以简单地概括为"一个接口,多种方法",前面讲过的重载就是一种简单的多态,一个函数名(调用接口)对应着几个不同的函数原型(方法). 更通俗的说,多态行是指同一个操作作用于不同的对象就会产生不同的响应.或者说,多态性是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为. 多态行分

Go编程——变量、函数导出与首字母大写

Go编程--变量.函数导出与首字母大写 标识符可被 导出 以允许从另一个包访问. 同时符合以下条件即为已导出标识 1.标识符名的第一个字符为Unicode大写字母(Unicode类别"Lu"): 2.该标识符在包块中已声明或为字段名或方法名. 以程序导入gotest/even包为例 package main import ( "even" "fmt" ) func main() { i:=even.I fmt.Printf("Is %d

C++ Primer 学习笔记_70_面向对象编程 --纯虚函数、容器与继承

面向对象编程 --纯虚函数.容器与继承 I.纯虚函数 在函数形参后面写上 =0 以指定纯虚函数: class Disc_item : public Item_base { public: double net_price(size_t) const = 0; //指定纯虚函数 }; 将函数定义为纯虚函数能够说明,该函数为后代类型提供了可以覆盖的接口,但是这个类的版本绝不会调用.重要的是,用户将不能创建Disc_item类型的对象. Disc_item discount; //Error Bulk

UNIX环境高级编程之-----popen函数

头文件: #include <stdio.h> 函数说明: FILE * popen ( const char * command , const char * type ); int pclose ( FILE * stream ); 说明:(参考unix环境高级编程) popen() 函数通过创建一个管道,调用 fork 产生一个子进程,执行一个 shell 以运行命令来开启一个进程.这个进程必须由 pclose() 函数关闭,而不是 fclose() 函数.pclose() 函数关闭标准