![](https://img-blog.csdnimg.cn/20200310144413243.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
程序员的自我修养
《程序员的自我修养--链接、装载与库》学习笔记
爱学习的蓝调
每天进步一点点~做个有追求的程序员
展开
-
c语言标准库
c语言标准库标准输入输出(stdio.h)文件操作(stdio.h)字符操作(ctype.h)字符串操作(string,h)数学函数(math.h)资源管理(stdlib.h)格式转换(stdlib.h)时间/日期(time.h)断言(assert.h)各种类型的常数(limits.h & float.h)变长参数(stdarg.h)非局部跳转(setjmp.h)...原创 2020-05-06 11:03:56 · 188 阅读 · 1 评论 -
动态链接库DLL的加载
《程序员的自我修养--链接、装载与库》学习笔记动态链接(DLL)DLL,即动态链接库(Dynamic Link Library),在实际应用开发过程中,为了以后对已经开发好的软件程序进行更好的维护和管理,程序的模块化是一个很好的管理方法,程序员大都喜欢把某一模块的功能做成dll文件,然后导入到工程目录中,再进行加载即可调用dll里面的函数,大大的减少了代码的阅读量,节省大量的宝贵时间,如果...原创 2020-03-10 17:16:50 · 288 阅读 · 1 评论 -
浅析静态链接和动态链接
转载自:https://www.cnblogs.com/skynet/p/3372855.html什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。所谓...转载 2020-03-10 16:00:20 · 380 阅读 · 0 评论 -
揭秘编译和链接--C++
《程序员的自我修养--链接、装载与库》学习笔记对应平常的应用开发,我们很少关注编译和链接过程,这些事都被IDE替我们完成了。那我们写的代码,是怎么组织起来的?最后是怎么运行起来的呢?今天跟大家一起来学习下。代码编写完成到最后变成可执行的exe,中间需要四个步骤:预编译、编译、汇编和链接。 编译和链接图示: ...原创 2020-03-10 15:27:52 · 190 阅读 · 1 评论 -
malloc最多能分配多大的内存空间?
malloc的全称是memory allocation,中文叫动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。void* 类型表示未确定类型的指针。C,C++规定,void* 类型可以通过类型转换强制转换为任何其它类型的指针。一般需和free函数配对使用。但是,malloc...原创 2019-05-10 16:31:26 · 8241 阅读 · 0 评论 -
1M等于多少字节
1M = 1024k = 1048576字节算法是:1Byte(字节) = 8bit(位)1KB =1024Byte(字节)1MB =1024KB1GB =1024MB1TB =1024GB一个汉字要占用2个字节如果换算成中文汉字那么就是1M=524288个汉字...原创 2019-03-27 09:37:53 · 41070 阅读 · 0 评论 -
三种线程模型
多线程内部情况(三种线程模型)1.一对一模型一般直接使用API或系统调用创建的线程均为一对一的线程。一个用户使用的线程就唯一对应一个内核使用的线程。优点:用户线程具有了和内核线程一致的有点缺点:1、由于许多操作系统箱子了内核线程数量,因此一对一线程会让用户的线程数量受到限制/2、许多操作系统内核线程调度时,上下文切换的开销较大,导致用户线程的执行效率下降。 ...原创 2019-03-28 08:42:08 · 10441 阅读 · 1 评论 -
计算机软件体系结构
最近在学习《程序员的自我修养:链接、装载与库》一书,看到这觉得受益较大,故摘录下来以供后续温习以及分享。“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决” 这句话几乎概括了计算机系统软件体系结构的设计要点,整个体系结构从上到下都是按照严格的层次结构设计的。不仅是计算机系统软件整个体系是这样的,体系里面的每个组件比如操作系统本身,很多应用程序、软件...原创 2019-03-13 10:48:36 · 2897 阅读 · 0 评论