C++嵌入式应用程序是否应该为内置C++类型使用带有typedef的公共头?

Bra*_*ran 4 c++ embedded module header

通常的做法是我努力避免直接使用内置类型,而是包含一个standardtypes.h,其中包含以下项目:

// \Common\standardtypes.h
typedef double             Float64_T;
typedef int                SInt32_T;
Run Code Online (Sandbox Code Playgroud)

几乎所有组件和源文件都依赖于此标头,但是有些人认为需要抽象类型的大小(实际上这并不需要).

这是一个很好的做法(特别是在大型组件化系统中)吗?还有更好的选择吗?或者是否应该直接使用内置类型?

Ama*_*9MF 9

您可以在头文件中使用现代C和C++实现中提供的标准化版本:stdint.h

它有类似的类型:uint8_t,int32_t等.

通常,这是保护代码免受平台依赖的好方法.即使你迄今为止还没有遇到它的需要,它肯定会使代码更容易解​​释,因为你不需要像'int'或'long'那样猜测存储大小,它的大小会有所不同.平台.