要养成好的习惯:永远在使用对象之前先将它初始化。
- 对于内置类型,在定义时就初始化
- 对于类类型,在构造函数初始值列表中按照声明顺序初始化
- 类类型中的私有变量是内置类型时,也可以在声明时初始化,这样可以避免初始值列表过长。
- 如果期望类类型中的对象以默认构造函数初始化时,那也可以不用放在初始值列表中
要养成好的习惯:永远在使用对象之前先将它初始化。
宏在 c++ 中要尽可能少的使用,在google c++ 编码规范中也是建议使用宏要谨慎。
谷歌 c++ 编码规范也比较推崇尽量使用const
。
两个 stm32 通过 SPI 进行通信,一主一从,但从机不能使用 CubeMX 的默认配置,不然会被带进坑……
QWidget 中就具有类 QTabWidget 以 Table 的方式来切换各个窗口,但是在 QtQuick 中并没有一个叫 TabWidget 的组件。
与之较为接近的便是 TabBar 这个组件,但其没有提供子窗口的动态增加和删除。
这里主要关注同类型窗口的动态创建
在 ERPC 的 IDL 说明文档中,对于接口内存的申请和释放是这样描述的:
- On the client side: All memory space has to be allocated and provided by the user code. The shim code only reads from or writes into this memory space.
- On the server side: All memory space is allocated and provided by the shim code. The user code only reads from or writes into this memory space.
为了避免在实际使用中产生内存泄漏,还是需要实际查看代码来理解。
其实这里分两种情况:
NXP 官方提供了 M4 和 A53 通信的 demo,但是仅仅是演示作用:
echo
演示,不适合编写代码完成通信那么完成的步骤就是:
在使用 EPRC 进行 TCP 通信的过程中,如果需要同时运行一个客户端和服务端就会出现异常。
这是因为其提供的 erpc_setup_tcp.cpp
只能初始化一个实例,那就需要对其进行理解并修改。