C 有没有办法指定 int 大小?

Aus*_*tin 1 c types

我正在尝试检查一些有关 2 的补码加法、减法等溢出的作业答案,我想知道是否可以指定数据类型的大小。例如,如果我想看看当我尝试将 -128 或 -256 分配给 7 位无符号整数时会发生什么。

wat*_*ice 6

在进一步阅读中,我发现您想要不正常的位大小,例如 7 位和 9 位等。您可以使用位域来实现这一点

struct bits9
{
    int x : 9;
};
Run Code Online (Sandbox Code Playgroud)

现在您可以使用这种类型bits9,其中有一个字段x大小仅为 9 位。

struct bits9    myValue;

myValue.x = 123;
Run Code Online (Sandbox Code Playgroud)