我刚刚开始编写自己的内存管理器,但要做到这一点,我需要某种类型的包含文件来创建f32
(浮点整数)。
我的计划已经#include <cstdint>
,但我不确定F32
或I32
对此有何需要。
答案 0 :(得分:2)
AFAIK目前还没有标准化的方法来获得固定宽度的浮点类型 - 我认为因为,与整数类型不同,float
和double
或多或少都是相同的(32位{ {1}},64位float
,具有“奇怪”FP类型的单独类型。
但是,如果你想要更加确定,你可以在创建typedef之前做一个静态断言:
double
通过这种方式,在“理智”平台上,这将完美无缺,而在“奇怪”平台上,它将无法编译,让您有机会添加特定于平台的#include <climits>
static_assert(sizeof(float)*CHAR_BIT==32, "float is not 32 bit on this architecture, fix the f32 typedef.");
typedef float f32;
。
至于I32,它足以包含typedef
并创建你的typedef:
<cstdint>