0

我刚刚开始编写自己的内存管理器,但要做到这一点,我需要某种类型的包含文件来创建一个f32(浮点整数)。

我已经#include <cstdint>在我的程序中,但我不确定我需要什么 a F32,或者I32就此而言。

4

1 回答 1

1

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;
于 2012-01-23T00:14:30.877 回答