摘要:
1. 申请的内存所在位置 new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。 那么自由存储区是否能够是堆(问题等价于new是否能在堆上动态分配内存),这取决于operator new的实现细节。自由存储区不仅可以是堆,还可以是静态存储区, 阅读全文
posted @ 2024-03-19 20:09
小熊酱
阅读(54)
评论(0)
推荐(0)
摘要:
1. 浮点型的原理介绍及在内存中的存储形式 C语言提供了浮点数据类型,单精度浮点数float和双精度浮点数double。浮点数属于不精确的数据类型,本文将通过float类型的原理和在内存中的存储形式来介绍浮点型不精确的原因。以float类型为例,来展示C语言中浮点型的神秘之处。 2. float类型 阅读全文
posted @ 2024-03-19 19:58
小熊酱
阅读(94)
评论(0)
推荐(0)
摘要:
1. 函数返回机制 函数返回值的传递分为两种情况: 当返回的对象大小不超过8字节时,通过寄存器(eax edx)返回。 当返回的对象大小大于8字节时,通过栈返回。此处需要注意的时候,如果返回的是struct或者class对象,即使其大小不大于8字节,也是通过栈返回的。 在通过栈返回的时候,栈上会有一 阅读全文
posted @ 2024-03-19 19:54
小熊酱
阅读(296)
评论(0)
推荐(0)
摘要:
1. volatile关键字 C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrie。 volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。 遇到这个 阅读全文
posted @ 2024-03-19 19:40
小熊酱
阅读(1820)
评论(0)
推荐(0)
摘要:
1. 隐藏(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。 如果加了static,就会对其它源文件隐藏。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。static可以用作函数和变量的前缀,对于函数 阅读全文
posted @ 2024-03-19 19:24
小熊酱
阅读(28)
评论(0)
推荐(0)
摘要:
const 定义的常量在超出其作用域之后其空间会被释放; static 定义的静态常量在函数执行后不会释放其存储空间; 1. static static 表示的是静态的。 类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员变量。一 阅读全文
posted @ 2024-03-19 19:07
小熊酱
阅读(237)
评论(0)
推荐(0)
摘要:
函数原型: void *memcpy(void *dest, const void* src, size_t count ); void *memmove(void *dest, const void* src, size_t count ); memcpy和memmove相同点: 都是用于从src 阅读全文
posted @ 2024-03-19 18:43
小熊酱
阅读(58)
评论(0)
推荐(0)
摘要:
1. malloc 函数原型: extern void *malloc(unsigned int num_bytes); 如果分配成功:则返回指向被分配内存空间的指针,不然返回指针NULL 。同时,当内存不再使用的时候,应使用free()函数将内存块释放掉。 malloc分配的内存大小至少为参数所指 阅读全文
posted @ 2024-03-19 16:36
小熊酱
阅读(67)
评论(0)
推荐(0)
摘要:
1. kmalloc 函数原型: void *kmalloc(size_t size, gfp_t flags); kmalloc() 申请的内存位于物理内存映射区域,而且在物理上也是连续的,它们与真实的物理地址只有一个固定的偏移,因为存在较简单的转换关系,所以对申请的内存大小有限制,不能超过128 阅读全文
posted @ 2024-03-19 16:23
小熊酱
阅读(229)
评论(0)
推荐(0)

浙公网安备 33010602011771号