编程基础
文章平均质量分 91
Cgengzhihui
这个作者很懒,什么都没留下…
展开
-
对进程空间的认识
对进程空间的认识(为什么32位的机器的进程地址空间为4GB)在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一、早期的内存分配机制在 早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序同时运行多个程序时,操作系统是如何为这些程序分配内存 的呢?下面通转载 2021-05-17 20:44:15 · 380 阅读 · 0 评论 -
2021-04-19
最详尽最通俗易懂的c/c++堆栈机制解读转自:https://zhuanlan.zhihu.com/p/313608043更多编程技术相关资料请加群973961276前言我们经常会讨论这样的问题:什么时候数据存储在堆栈(Stack)中,什么时候数据存储在堆(Heap)中。我们知道,局部变量是存储在堆栈中的;debug时,查看堆栈可以知道函数的调用顺序;函数调用时传递参数,事实上是把参数压入堆栈,听起来,堆栈象一个大杂烩。那么,堆栈(Stack)到底是如何工作的呢? 本文将详解C/C++堆栈的转载 2021-04-19 19:38:48 · 423 阅读 · 0 评论 -
C++运算符重载函数作为类成员函数和友元函数
全文转自:http://c.biancheng.net/cpp/biancheng/view/217.html例10.2中对运算符“+”进行了重载,使之能用于两个复数的相加。在该例中运算符重载函数operator+作为Complex类中的成员函数。可能有的读者会提出这样的问题:”+“是双目运算符,为什么在例10.2程序中的重载函数中只有一个参数呢?实际上,运算符重载函数有两个参数,由于重载函...转载 2020-01-15 12:02:16 · 2541 阅读 · 0 评论 -
虚拟地址空间如何被划分
第十三章:第二节:一个虚拟地址空间如何被划分摘自:http://blog.sina.com.cn/s/blog_4798d02d0100h4mk.html虚拟地址空间如何被划分每一个进程的虚拟地址空间被劈成几部分。被分区的地址空间基于底层操作系统的实现。分区改变很少的在不同的微软windows内核中。显示每一个平台如何分区一个进程的地址空间。 分区 ...转载 2019-10-21 14:46:51 · 608 阅读 · 0 评论 -
sockaddr和 sockaddr_in详解
[转]socket编程——sockaddr_in结构体操作sockaddr结构体sockaddr的缺陷:sa_data把目标地址和端口信息混在一起了struct sockaddr { unsigned short sa_family; char sa_data[14]; }; sa_family是通信类...转载 2019-05-23 11:13:23 · 730 阅读 · 0 评论 -
C++中宽字节的编码方式
C++中宽字节的编码方式C++中宽字节的编码方式Unicode,UTF-8,UTF-16 完整的说明参见 Wiki。简单来说,Unicode 定义了所有可以用来表示字符的数值集合(称之为 Code Point),而UTF-8 和 UTF-16 等 UTF 标准定义了这些数值和字符的映射关系--Unicode的具体实现。UTF-8 优势:UTF-8 没有字节序的...转载 2019-05-09 18:32:59 · 986 阅读 · 0 评论 -
细说:Unicode, UTF-8, UTF-16, UTF-32, UCS-2, UCS-4
细说:Unicode, UTF-8, UTF-16, UTF-32, UCS-2, UCS-41. Unicode与ISO 10646全世界很多个国家都在为自己的文字编码,并且互不想通,不同的语言字符编码值相同却代表不同的符号(例如:韩文编码EUC-KR中“한국어”的编码值正好是汉字编码GBK中的“茄惫绢”)。因此,同一份文档,拷贝至不同语言的机器,就可能成了乱码,于是人们就想:我们能不能...转载 2019-05-09 16:21:29 · 468 阅读 · 0 评论 -
动态链接库DLL的加载:隐式加载(载入时加载)和显式加载(运行时加载)
转文来源:http://c.biancheng.net/cpp/html/2754.html 静态链接库在链接时,编译器会将 .obj 文件和 .LIB 文件组织成一个 .exe 文件,程序运行时,将全部数据加载到内存。如果程序体积较大,功能较为复杂,那么加载到内存中的时间就会比较长,最直接的一个例子就是双击打开一个软件,要很久才能看到界面。这是静态链接库的一个弊端。动态链接库有两种加...转载 2018-12-23 18:49:27 · 267 阅读 · 0 评论 -
怎样计算C++继承、虚继承、虚函数类的大小
怎样计算C++继承、虚继承、虚函数类的大小 一、真空类C++代码class CNull { }; 长度:1 内存结构: ?? 评注:长度其实为0,这个字节作为内容没有意义,可能每次都不一样。 二、空类C++代码class CNull2 { pub转载 2018-03-08 10:22:35 · 256 阅读 · 0 评论