C++微控制器全局类/辛格尔顿?
c++ microcontroller global classes/singelton?
我目前正在微控制器上使用C++,我遇到了一个问题,我不知道正确的实现是什么:
例如,我使用一个串行接口类,该类负责配置串行端口(设置波特,数据位...由于我只想在开始时在MCU的初始化阶段执行此操作,因此我不知道如何处理类。
我应该创建一个在初始化阶段创建的全局类/单例(这样我可以保留我的串行参数(,还是每次需要使用串行接口时创建一个类(但这会重新打开我的串行行 - 或者我是否将构造函数留空(?
提前非常感谢。
我尽量避免全局变量和单例。
我定义了一个类,其中包含一个接受路径名和配置以打开端口的构造函数,以及一个关闭端口的析构函数。 然后,我在main(...)
中声明了它的static
本地实例,并将对它的引用传递给需要使用该端口的其他类的构造函数。
传递引用(而不是声明全局实例或全局函数以获取单例(使我能够为其他类编写单元测试,其中测试在对模拟串行端口对象的引用中传递。
您正在征求意见,因为所有选项都有效。
我确实相信创建一个单一实例来存储所需的配置和资源是一个很好的方法。通过这种方式,您可以实现 RAII 习语,并在需要时轻松访问。
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 当vector是tje全局变量时,c++中vector的内存管理
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 如何创建一个空的全局类并在启动时实例化它
- 内联函数中具有内部链接的全局变量
- 为什么虚函数不能是静态的和全局的?
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 全局作用域中函数指针的赋值
- g++用户定义的动态链接库上的全局new和delete运算符
- 在命名空间中使用全局命名空间中的函数
- 全局变量 多读取器 一个写入器多线程安全?
- 类的全局对象和静态成员
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 不同作用域中的静态变量和全局变量
- 如何使用 llvm-10 库在C++定义 LLVM 全局值变量?
- 使用全局声明的向量时,C++双重释放错误/损坏
- C++微控制器全局类/辛格尔顿?
- 在低功耗多核微控制器中使用全局变量不好吗?(C++)