04 2023 档案

摘要:问题来源 查找系统调用open函数,发现存在同名函数,可是C语言没有函数重载的概念。 代码层面分析 从代码中跳转到open函数声明,看到了变参函数,这样就符合C语言的语法规则了。 可变参数 参数需要具备一定特征 第一个参数为参数总个数 第N个参数为NULL或其他具有代表性的值 参数从右向左入栈,然后 阅读全文
posted @ 2023-04-17 19:56 Qing-Huan 阅读(46) 评论(0) 推荐(0) 编辑
摘要:1. 在调用成员函数前,先将对象地址存入 ecx 寄存器,进入函数后将 ecx 压栈保存对象地址,当需要用到 this指针 时,再弹栈取出赋值给函数内部自带的一个 this指针 2. 数据成员是由 this指针 +偏移取到的。类的对齐规则和结构体一致 3. 静态成员函数没有 this指针 4. 若函 阅读全文
posted @ 2023-04-17 08:51 Qing-Huan 阅读(34) 评论(0) 推荐(0) 编辑
摘要:0. 原理简述 父类中如果存在虚函数,类中会隐含一个虚函数指针,指向一个虚函数表,表中存储了父类的所有虚函数入口地址。子类继承父类,会复制一份虚指针和虚表。此时如果子类重写了父类的虚函数,会将重写的虚函数入口地址更新到虚表中。若父类指针指向了子类,并且调用虚函数,会在我们更新的虚表里找虚函数入口地址 阅读全文
posted @ 2023-04-14 21:42 Qing-Huan 阅读(77) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示