自定义字节大小?

6 c++ size primitive byte sizeof

那么,您知道char类型的原语如何具有1个字节的大小吗?如何制作具有自定义尺寸的图元?因此,而不是一个大小为4字节的in int而不是一个大小为1的那个让我们说16.有办法做到这一点吗?有办法解决吗?

Whi*_*ind 6

这取决于你为什么这样做。通常,您不能使用少于 8 位的类型,因为这是体系结构的可寻址单元。但是,您可以使用结构来定义不同的长度:

struct s {
  unsigned int a : 4;  // a is 4 bits
  unsigned int b : 4;  // b is 4 bits
  unsigned int c : 16; // c is 16 bits
};
Run Code Online (Sandbox Code Playgroud)

但是,不能保证结构体的长度为 24 位。此外,这可能会导致字节序问题。在可能的情况下,最好使用系统无关类型,例如 uint16_t 等。您还可以使用按位运算符和位移位来非常具体地处理事物。


Dan*_*son 5

通常,您只需创建一个表示您感兴趣的数据的结构.如果它是16个字节的数据,要么它是许多较小类型的集合,要么是在处理具有本机16字节整数类型的处理器上.

如果您尝试表示非常大的数字,则可能需要找到一个处理任意大小数字的特殊库.