
程序底层
u012903992
这个作者很懒,什么都没留下…
展开
-
动态链接库与共享内存:
动态链接库与共享内存: 我们知道,动态链接库(在windows上表现为.dll,在linux下表现为.so)采用的是延迟加载机制,即程序在运行的过程中在被调用的时候才会被加载。一个动态库在内存中只存在一份,可以被多个进程共享。这样做很明显可以节省内存空间。 那么问题来了:共享内存在内存中也是只存在一份,也可以被多个进程共享。在不同的进程中,共享的那段内存的被分配的地址会有所不同。那么,同样是在内存中只存在一份,同样是可以被其他进程共享,动态链接库和共享内存的区别在哪呢? 区别就在...原创 2022-02-07 12:14:15 · 2554 阅读 · 0 评论 -
锟斤拷?UTF-8与GBK互转,为什么会乱码?
作为一名程序员,肯定有被乱码困扰的时候,真到了百思不得其解的时候,就会觉得:英文程序员真幸福。但其实只要明白编码之间的转换规律,其实乱码so easy~我们知道,计算机存储数据都是2进制,就是0和1,那么这么多的字符就都需要有自己对应的0和1组成的序列,计算机将需要存储的字符转换成它们对应的01序列,然后就可以储存在电脑里了。比如我们可以定义用8位2进制表示一个字符,“00000000”表示小写字母“a”,“00000001”表示小写字母“b”,那么计算机要存储“ab”的时候,其实在..转载 2020-09-29 11:27:02 · 2167 阅读 · 0 评论 -
gcc编译程序四个阶段 预处理、编译、汇编、链接
我们在windows下的时候大部分通过vs等编译器来编写我们的代码,这种编译器有一个统称的名字叫做IDE(Integrated Development Environment)中文名字是集成开发环境,为什么叫它集成开发环境,是因为你只需要安装一个vs你就可以做到对代码的编辑、编译、调试等等,每次我们在vs环境下编写完代码之后拿一下f5程序自动开始执行,我们就能得到程序的执行结果,实际上在你编写完代...转载 2019-07-18 18:52:22 · 1474 阅读 · 0 评论 -
预处理与编译阶段
一、C语言由源代码生成的各阶段如下:C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 其中编译预处理阶段,读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。或者说是扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。预处理过程先于编译器对源代码进行处理。 在C 语言中...原创 2019-07-18 18:59:02 · 1033 阅读 · 0 评论