随笔分类 - C++
摘要:虚函数表(vtable)在C++中的生成时机如下: 1. 编译阶段生成 虚函数表是由编译器在编译阶段为每个包含虚函数的类生成的静态数据结构。具体来说: 类定义处理:当编译器解析到类的定义中包含虚函数(包括virtual成员函数或继承自基类的虚函数)时,会为该类创建一个虚函数表。 表内容确定:虚函数表
阅读全文
摘要:在C++中,使用 weak_ptr 可以解决 shared_ptr 的循环引用问题。循环引用通常发生在两个或多个对象通过 shared_ptr 互相引用,导致引用计数无法归零,内存无法释放。以下是详细解释和示例: 1. 循环引用的问题 假设两个类 A 和 B 互相持有对方的 shared_ptr:
阅读全文
摘要:在嵌入式设备中出现 tpp.c:87 的断言失败并导致宕机,通常与线程优先级管理或实时调度策略(如 SCHED_FIFO)的配置错误有关。以下是可能的原因及分析: 1. 线程优先级越界 问题:断言 previous_prio == -1 || (previous_prio >= fifo_min_p
阅读全文
摘要:避免使用vector<bool>,尽量使用bitset或者deque<bool> 因为vector<bool>不是容器,底层是bool值按bit存储 STL list容器数据结构上看是带空头的双向循环链表 容器迭代器要注意迭代器失效问题,insert/erase后要及时更新迭代器 auto_ptr不
阅读全文
摘要:#include <iostream> extern "C" { #include "stdio.h" void print() { const char* s = "Hello asm\n"; int len = 10; printf("Hello C\n"); asm volatile( "mo
阅读全文

浙公网安备 33010602011771号