![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言学习
文章平均质量分 94
112233123hd
这个作者很懒,什么都没留下…
展开
-
C++ 之命名空间namespace【详解】
命名空间(英语:Namespace),也称命名空间、名称空间等,它表示着一个标识符(identifier)的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其他命名空间中。原创 2023-07-21 16:25:00 · 13439 阅读 · 25 评论 -
浮点数在内存中的存储【详解】
IEEE 754规定: 对于32位的浮点数,最高的1位是符号位S,接着的8位是指数E,剩下的23位为有效数字M。比如,2^10的E是10,所以保存成32位浮点数时,必须保存成10+127=137,即10001001。所以这里是float类型,E=-1,存储时加上127,也就是真正存入内存的是:-1+127=126。我们会发现一个特别的现象,E=-1,前面说过,E是一个无符号整数,那这个-1该怎么存储呢?对于64位的浮点数,最高的1位是符号位S,接着的11位是指数E,剩下的52位为有效数字M。原创 2024-04-07 12:44:20 · 732 阅读 · 12 评论 -
哈希的开放定址法的实现【C++】
开放定址法也叫闭散列,是解决哈希冲突的一种方法,当发生哈希冲突之后,如果哈希表没有被装满(正常情况哈希表不会被装满的),那就向后移动,寻找一个没有元素的地址,然后插入。线性探测。原创 2023-11-03 12:32:49 · 328 阅读 · 23 评论 -
C++之函数重载【详解】
1. 函数重载的概念 C++支持函数重载的原理(名字修饰) 前言2.2 函数名修饰规则2.3 VS下的命名修饰规则预编译,编译,汇编,链接。C语言链接时得到的函数地址没有经过修饰,C++链接时需要经过特定的规则来修饰,函数名经过修饰后再去寻找相应函数的文件。由于Windows下的VS的函数名修饰规则复杂,重点了解下LINUX下 g++的函数名命名规则。原创 2023-10-23 22:40:36 · 403 阅读 · 21 评论 -
C++之继承<1>【详解】
继承方式public继承protected继承private继承访问限定符public访问protected访问private访问。原创 2023-10-15 14:37:24 · 274 阅读 · 19 评论 -
【详解】C语言冷门知识点之--位段
位段(或称“位域”,Bit field)为一种数据结构,可以把数据以位的大家有没有发现,我们在声明位段的时候,如果定义的是int,那么冒号后面跟上的数字不能超过32,如果定义的是char,那么冒号后面跟上的数字不能超过8。而位域这种数据结构的缺点在于,其内存分配与内存对齐的实现方式依赖于具体的机器和系统,在不同的平台可能有不同的结果,这导致了位段在本质上是不可移植的。以上也证明了, 在VS2022上,位段分配的内存中的比特位是从右向左使用的,分配剩余的比特位不够使用时,浪费掉剩余内存,重新开辟新的空间。原创 2023-07-14 14:01:03 · 2724 阅读 · 41 评论