深入理解C/C++
文章平均质量分 55
本专栏意在对教材上很少涉及的更加深层的内容进行阐述。
HilariousDog
记录所学,帮助成长。Good luck!
展开
-
linux链接、目标文件全解析
在编译时,编译器向汇编器输出每个全局符号,要么是强,要么是弱,汇编器会把强弱信息隐含在符号表中。所谓强符号,是指函数和已初始化的全局符号,而弱符号就是未初始化的全局变量。请牢记定义。规则1:不允许有多个同名的强符号。规则2:如果有一个强符号和多个弱符号同名,那么选择强符号。规则3:如果有多个弱符号同名,那么从这些弱符号中任意选择一个。// 强符号int y = 12;// 强符号int main()f();return 0;原创 2024-10-22 16:59:23 · 929 阅读 · 0 评论 -
C++内存对齐的原因
原因硬件原因,cpu不是一个字节一个字节读取内存的,而是一次读取一块,因此按照块的大小进行内存对齐,可以提高cpu访问内存的速度。平台原因,不是所有硬件平台都支持访问任意地址的内存,某些平台只能在一些地址处获取特定类型的数据,否则抛出硬件异常。原创 2023-11-18 10:46:12 · 105 阅读 · 0 评论 -
static_cast,const_cast,reinterpret_cast, dynamic_cast的功能与区别
这四种类型转换操作符功能有所不同,对应不同的使用场景。原创 2023-10-19 15:29:00 · 100 阅读 · 0 评论 -
解析为什么不能自动合成的而又未显示删除的移动操作(move operations)会处于未定义状态
Explain why is a move operation that is not automatically synthesized but does not show deletion left undefined.原创 2023-10-16 22:25:02 · 113 阅读 · 1 评论