文章目录
【注意】最后更新于 January 1, 0001,文中内容可能已过时,请谨慎使用。
假如系统最初版本
|
|
怎么升级改造,写出一个可扩展程序?
先思考60秒
下面是我处理该问题解决步骤
- 先问自己这个系统架构是什么?
至少三层架构设计
应用层—>标准库(glibc)——>操作系统 - 未来5年项目需要变化内容有哪些?
- 应用层——用户需求发生变化,需要新增功能
- 标准库—— 提供接口不合适了,需要替换原有功能
- 操作系统——不处理,在怎么变化也不处理 ,没这个能力
- 如何优化
- 应用层 把c语言改为c++ 面向对象设计,通过虚函数提供接口,动态库实现不同方法替换动态库
- 标准库(libc++/libstd++)共享库,这个无法替换呢? 提供接口声明为弱符号
|
|
弱符号有什么优势?
在库中提供默认实现的弱定义函数,
允许用户通过自定义强定义版本来覆盖这些函数—这样设计体现可扩展
说明:
attribute((weak)) 是 GCC 和 Clang 提供的一个特性,
用于声明一个符号为 “弱符号”(weak symbol),
在链接层面提供更多的灵活性
扩展阅读: 驱动程序通常需要支持多种硬件设备,但某些设备可能不支持某些功能。 通过使用弱符号,可以在驱动程序中提供默认实现,同时允许用户为特定设备提供自定义实现