我正在开发动态语言和虚拟机,我的对象模型如下:
typedef struct {
int tag;
union {
int64_t n;
double_t d;
void *p;
} _v;
} value;
基于标记值(枚举),我可以解释_v union字段。 编译时宏还可以将double_t定义为double或float以获得最大效率。
为了简单地对象模型很多动态语言而不是保持整数运算和浮点运算分离,只需使用double并对其执行所有数值运算。
在保持整数/浮点运算操作中的任何性能优势都像我的情况一样分开?还有其他优势吗? (除了简化的对象模型,其中包含可以从中得到的所有简化)。