C 语言没有 C++ 那样的 class、继承和虚函数,但在操作系统、驱动、AUTOSAR、Linux 内核等底层软件中,经常可以看到一种很成熟的写法:
把“基类结构体”嵌入“派生结构体”,再通过基类指针复用公共逻辑;需要具体能力时,再受控地恢复为派生类型。
这种模式可以理解为 C 语言中的组合式继承(struct embedding)+ 类型擦除(type erasure)+ 运行时类型恢复。
原创2026/9/29大约 10 分钟
C 语言没有 C++ 那样的 class、继承和虚函数,但在操作系统、驱动、AUTOSAR、Linux 内核等底层软件中,经常可以看到一种很成熟的写法:
把“基类结构体”嵌入“派生结构体”,再通过基类指针复用公共逻辑;需要具体能力时,再受控地恢复为派生类型。
这种模式可以理解为 C 语言中的组合式继承(struct embedding)+ 类型擦除(type erasure)+ 运行时类型恢复。
在 AUTOSAR BSW 调试过程中,经常需要从 C 代码定位到实际执行的汇编指令。本文以 Vector SOME/IP Service Discovery 模块中的局部变量初始化为例,说明如何分析 TriCore 汇编、栈帧以及变量地址映射。
源码:
uint8 errorId = SD_E_NO_ERROR;
《炒股的智慧》读书笔记
本文主要总结设计模式这本书,并用c语言简单举例
本文主要讲解developer Port auto-connect 规则
如何生成requirements依赖文件
本文主要讲解Autosar davinci developer classic基本使用
venv in python
本文主要讲解Autosar CAN 协议栈原理、集成及相关调试策略
本文探讨C++中 s = s + 'A' 和 s += 'A' 的区别