
C/C++ Primer Plus与汇编
讲解C/C++语法规则,并从汇编语言角度分析语言底层的实现逻辑和内存表示,如类和继承在内存中的表示,多态,泛型,RTTI和异常捕获的实现原理,为JVM源码学习打下坚实基础
孙大圣666
这个作者很懒,什么都没留下…
展开
-
C 预处理指令,指针,类型限定符和数组
目录一、预处理指令1、#include 包含头文件2、#define 定义宏和内联函数3、#if....#elif....#endif4、#error5、#line6、#pragma二、指针1、指针的定义2、指针的指针3、指针的操作4、指针赋值的类型检查5、空指针6、void指针7、结构指针8、函数指针三、类型限定符1、co...原创 2019-06-08 18:07:16 · 1249 阅读 · 0 评论 -
C 字符串,变量属性,结构变量,联合和枚举
目录一、字符串1、字符串声明2、字符串数组声明3、字符串常用函数4、读取命令行参数二、变量属性1、左值与右值 2、作用域3、存储期4、链接5、auto关键字6、static关键字7、extern关键字8、register关键字三、结构变量1、声明和赋值2、结构数组3、结构嵌套4、结构变量如何传递给函数5、伸缩型数组...原创 2019-06-15 15:17:20 · 810 阅读 · 0 评论 -
C 位字段,_Alignas关键字,可变参数函数和高级数据结构
目录一、位字段二、_Alignof和_Alignas关键字三、可变参数函数四、高级数据结构1、双向链表2、HashMap3、FIFO队列4、红黑树一、位字段 位字段是C语言提供的操作位的一种便捷且代码可读性更好的方式,适用于只需少量的位表示数据的场景下。GNU C下,位字段的内存大小是unsigned int类型所占内存的整数倍,64位下unsigne...原创 2019-06-16 21:33:20 · 4355 阅读 · 0 评论 -
C与汇编语言
目录一、汇编指令二、汇编器和链接器三、 汇编语法四、C中嵌入汇编代码五、GDB反汇编1、x86_64通用寄存器2、 调用栈3、导出汇编代码4、反汇编调试详解5、结构体反汇编一、汇编指令 汇编指令是指特定CPU架构的指令码的助记符,比如Intel x86 32位下ADD指令对应的16进制机器码有04/05/80/81等,被操作对象不同同一个...原创 2019-06-19 14:32:28 · 12018 阅读 · 1 评论 -
C++ 名称空间,wchar_t宽字符,浮点数精度,new/delete操作符
目录一、头文件命名二、名称空间1、名称空间使用2、名称空间定义3、iostream头文件定义解析三、cout和cin四、wchar_t,char16_t和char32_t五、float/double 浮点数精度六、string对象七、new和delete操作符1、分配内存2、内存初始化3、定位new一、头文件命名 C++中头文件是...原创 2019-06-22 19:10:45 · 1912 阅读 · 1 评论 -
C++ 引用变量,函数默认值,函数重载,函数模板,auto和decltype关键字
目录一、引用变量1、引用变量声明2、引用变量作为函数入参3、引用变量作为函数返回值4、反汇编看引用变量使用二、函数参数默认值三、函数重载1、重载函数定义 2、名称修饰四、函数模板1、函数模板定义2、具体化和显示实例化五、auto和decltype类型推断1、auto 关键字2、decltype关键字3、函数模板应用一、引用变...原创 2019-06-26 10:46:36 · 780 阅读 · 0 评论 -
C++ 类构造与析构函数,静态成员,初始化列表,内联函数,内存表示
目录一、访问控制private/public二、构造函数和析构函数三、静态成员四、类属性默认值五、this指针六、初始化列表 6.1 基本数据类型和指针下的两者的反汇编代码 6.2 程序自定义类类型下的两者的反汇编代码 6.3 两者初始属性的顺序问题七、类内联函数八、类的内存表示先看一个完整的示例,再逐一说明要点:#inc...原创 2019-06-30 19:01:00 · 799 阅读 · 0 评论 -
C++ 类数组,类作用域枚举,运算符重载,友元函数,类型自动转换
目录一、类数组二、类作用域枚举三、运算符重载1、通过类成员函数重载运算符2、非类成员函数重载运算符 3、运算符重载的限制四、友元函数1、友元函数实现运算符重载2、多个类的友元函数3、类成员函数做友元函数五、类类型转换函数1、自动转换构造函数2、类类型转换函数一、类数组 《C++ Primer Plus》中提到初始化数组时都...原创 2019-07-02 20:54:00 · 3843 阅读 · 0 评论 -
C++ 类复制构造函数,浅/深拷贝,默认赋值运算符重载,友元类,内部类
目录一、复制构造函数1、定义2、隐式调用场景3、浅拷贝4、深拷贝二、赋值运算符重载函数三、友元类四、内部类和局部类1、局部类定义2、内部类定义3、内部类和外部类的互相访问一、复制构造函数1、定义 复制构造函数同默认构造函数一样是编译器在程序没有显示定义对应函数时自动添加的特殊成员函数,复制构造函数的入参是一个const或者非const的...原创 2019-07-06 17:44:17 · 902 阅读 · 0 评论 -
C++ 类公有继承,多态,虚函数,抽象基类
目录一、公有继承 1、基类构造函数与析构函数的自动调用2、初始化列表调用基类构造函数反汇编3、构造函数体中调用基类构造函数反汇编4、子类调用父类方法5、子类方法重定义6、基类引用/指针的兼容7、protected 访问控制二、多态1、多态定义与动态联编2、虚析构函数3、虚函数的继承4、虚函数的实现三、抽象基类1、抽象基类定义2、接...原创 2019-07-10 20:43:31 · 909 阅读 · 0 评论 -
C++ 类组合,私有继承,保护继承,多重继承,虚基类
目录一、类组合1.定义2、初始化列表二、私有继承三、保护继承四、绕开访问权限控制五、多重继承1、定义2、内存表示3、隐式向上类型转换4、调用基类同名方法5、菱形多继承6、虚基类7、虚基类与非虚基类共存一、类组合1.定义 类组合就是把其他类作为目标类的成员,通过该成员访问目标类的public方法,进而获取目标类的接口实现,...原创 2019-07-13 23:20:40 · 756 阅读 · 0 评论 -
C++ 类模板
目录 1、定义2、验证类模板生成的类定义3、非类型参数4、模板别名5、模板类6、多个参数类型7、类型参数默认值8、模板类作为模板函数的入参9、模板具体化10、成员模板11、将模板类用作类型参数12、模板类中的友元1、定义 类模板的概念用法同之前讲解过的函数模板是基本一致的,类模板不是一个完整的可以被单独编译的类定义,只是...原创 2019-07-26 13:59:36 · 777 阅读 · 0 评论 -
C++ struct扩展
目录1、定义2、继承3、模板 在GNU C++标准库的源码中有大量的struct的应用,其用法看着跟class基本一样,显然C++对C中的struct做了扩展,这两者之间有啥区别了?1、定义 struct一样支持访问控制,构造函数,析构函数,列表初始化语法,静态成员,内联函数,友元函数等,class支持的功能都可以用到struct上,两者最大的区别...原创 2019-07-30 16:02:11 · 1702 阅读 · 0 评论 -
C++ RTTI和类型转换运算符
目录一、RTTI1、dynamic_cast运算符 2、dynamic_cast实现原理3、typeid 运算符和type_info类4、typeid 实现原理二、类型转换运算符1、static_cast 运算符2、const_cast3、reinterpret_cast一、RTTI RTTI是Runtime Type Identific...原创 2019-07-28 16:02:53 · 835 阅读 · 0 评论 -
C++ 异常
目录1、abort()和exit()函数2、返回错误码3、goto跳转指令4、setjmp和longjmp跳转函数5、try/catch块6、try/catch实现原理7、栈解退8、异常捕获与继承9、exception类10、未捕获异常11、动态异常说明12、bad_exception类13、捕获所有的异常14、finally语句的替代写法...原创 2019-07-26 19:12:24 · 1896 阅读 · 0 评论