在8位块中处理变量的好方法是什么?

Bob*_*ark 3 c c++ compiler-construction programming-languages language-design

我正在玩我的玩具语言设计,我有一些问题.我希望它具有以位长度指定的变量.因此,例如,一个声明变量如下:

byte value;
two_bytes value;
Run Code Online (Sandbox Code Playgroud)

现在,这是我的问题.我正在尝试用C(或C++)语言编写解释器.我对C/C++的理解是它们的变量类型保证至少是最小大小,但它们可以更大(即,char将至少为8位,但某些实现将具有16位char).

如何在C/C++中编写一个只处理特定长度位的解释器?是拥有一组布尔值或为char类型设置位域的唯一方法吗?

Pub*_*bby 5

stdint标头是你需要的:

#include <cstdint>
std::int32_t x; // 32 bits signed
std::uint16_t y; // 16 bits unsigned
Run Code Online (Sandbox Code Playgroud)