我刚刚开始编写自己的内存管理器,但要做到这一点,我需要某种类型的包含文件来创建一个f32
(浮点整数)。
我已经#include <cstdint>
在我的程序中,但我不确定我需要什么 a F32
,或者I32
就此而言。
AFAIK到目前为止还没有标准化的方法来获得固定宽度的浮点类型 - 我认为是因为,与整数类型不同,float
并且double
在任何地方都或多或少相同(32位float
,64位double
,对于“奇怪的”FP类型有不同的类型) .
不过,如果您想更加确定,您可以在创建 typedef 之前进行静态断言:
#include <climits>
static_assert(sizeof(float)*CHAR_BIT==32, "float is not 32 bit on this architecture, fix the f32 typedef.");
typedef float f32;
这样,在“健全”的平台上,这将完美地工作,而在“奇怪”的平台上,它将无法编译,让您有机会添加特定于平台的typedef
.
至于 I32,包含<cstdint>
并创建您的 typedef 就足够了:
#include <cstdint>
typedef std::int32_t i32;