相关疑难解决方法(0)

访问非活动的union成员和未定义的行为?

我的印象是访问union除最后一个成员之外的成员是UB,但我似乎无法找到一个可靠的参考(除了声称它是UB但没有标准支持的答案).

那么,这是不确定的行为?

c++ undefined-behavior unions language-lawyer

114
推荐指数
4
解决办法
2万
查看次数

CHAR_BIT = 4是C标准授权的可能值吗?

我正在考虑一个非常具体的(现在无用的)处理器,称为土星.

该CPU的一个奇怪特性是它的元素单位是半字节(4位),而不是字节(8位).它不只是化妆品,任何指针值都以半字节表示.

有一次尝试为土星创建一个C编译器:hp48xgcc

看一下它的文档,我注意到它的基本类型遵循通常的GCC约定,使用char 8位.此时,我想知道:CHAR_BIT是否有意提供元素单元的大小?GCC自己的文档似乎暗示了这一点:

You can compute the number of bits in any data type like this:
      sizeof (type) * CHAR_BIT
Run Code Online (Sandbox Code Playgroud)

在这种情况下,考虑到Saturn架构,最好让CHAR_BIT = 4

或者我是否误解了CHAR_BIT的含义?

c

3
推荐指数
2
解决办法
371
查看次数

标签 统计

c ×1

c++ ×1

language-lawyer ×1

undefined-behavior ×1

unions ×1