
C++冷知识
哦咧哇岸居
一个C++渣渣
展开
-
C++冷知识(四)——类对象及虚函数表的内存空间排布
讲正题之前先复习一下指针的占用空间大小。指针的占用空间与编译器位数有关,当编译器为64位时,指针占用空间为8字节;当编译器为32位时,指针占用空间为4字节。 其实指针也就是地址,保存一个指针的占用空间与一个地址的大小是一样的。 1、普通类(即没有虚基类和虚函数)的对象中,其内存中保存的数据即为基类的非静态数据成员与当前类的非静态数据成员 及 内存对齐所占用的额外空间。 2、重点来了,对于存在...原创 2019-09-18 00:00:40 · 756 阅读 · 0 评论 -
C++冷知识(三)——大字节基本数据类型
C++内置的基本数据类型还有两种 1、long double 该类型属于浮点数类型,具体实现、占用字节由编译器和硬件平台决定,字节大小有8、10、12、16字节等,我本人的编译器为64位GCC 8.1,字节大小为16字节。 2、__float128 该类型是四精度浮点数类型,占用16字节。现在还没有128位的机器,所以,这种类型的数据由软件控制,而不是由硬件支持,性能、效率等等指标不太清楚...原创 2019-09-10 20:55:01 · 641 阅读 · 0 评论 -
C++冷知识(二)——类型判断之性能优化
这一版主要介绍C++的关键字,都是两个下划线开头的,所以,不是非常熟悉的话建议不要使用,主要用于标准库内部使用。 目录 1、__is_trivial 2、__is_trivially_copyable 3、__is_standard_layout 4、__is_pod 5、__is_literal_type 6、__is_empty 7、__is_polymorphic 8、__...原创 2019-09-08 23:32:00 · 1893 阅读 · 1 评论 -
C++冷知识(一)——简单类型判断
1、__is_enum关键字 获取一个类型是否是枚举类型 2、__is_union关键字 获取一个类型是否是共用体类型 3、__is_class关键字 获取一个类型是否是结构体或类类型 用法: #include <iostream> union A { }; struct B { }; enum C { }; class D { }; template<...原创 2019-08-26 09:01:20 · 923 阅读 · 0 评论