c++
文章平均质量分 55
c++笔记
fengchuidanliang
这个作者很懒,什么都没留下…
展开
-
class内存布局与原理以及dynamic_cast原理
内存布局: C有两个vftable,因为它继承了两个有虚函数的类。C::A_virt2的地址将替换C的vftable中A::A_virt2的地址,C::B_virt2将替换另一个表中B::B_virt2的地址。MSVC 通常使用_thiscall_调用约定,将类的this指针通过ecx寄存器传入成员函数中.进行定位类的实体对象static 成员函数不需要类实例,因此它们的工作方式与普通函数相同。没有_this_指针被传递给ecx寄存器。因此,无法 可靠地对静态成员函数与普通函数进行区分。普通成原创 2022-07-02 04:51:28 · 157 阅读 · 0 评论 -
关于bool在结构体中所占字节的测试
#include<iostream>struct MyStruct{ bool bo1; bool bo2; int num1; int num2;};struct MyStruct m;int main() { m.bo1 = true; m.bo2 = true; m.num1 = 0x100;}查看内存:确实是只占一字节 但是编译器会保证字节对齐,所以会对padding进行填充...原创 2022-01-16 15:13:38 · 831 阅读 · 1 评论 -
C/C++中extern关键字详解
1基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的,C++的规则在翻译这个函数名时会把fun这个名字变得面目全非,可能是fun@aBc_int_int...转载 2022-01-14 19:36:36 · 1051 阅读 · 0 评论 -
第一次写小工具
批处理小工具 废弃原创 2022-01-14 15:05:47 · 156 阅读 · 0 评论