Skip to content

UB12

Definition⚓︎

A non-value representation is read by an lvalue expression that does not have character type.

description⚓︎

non-value representation⚓︎

标准中的定义为:an object representation that does not represent a value of the object type。

简单来说就是不合理、没有意义、无效的值,往往意味着对象表示值与对象类型不符合。

举个例子,比如说某种硬件使用32bits来表示一个有符号整数,最高位为符号位,0表示正数,1表示负数。并且定义0为0x00000000,那么0x80000000就是一个non-value representation。

UB12定义了,使用左值表达式读取non-value representation为未定义行为。除却使用character类型读取,因为character类型对应的表示值总是正确。

code⚓︎

由于non-value representation在平常工作中很少见到实例,因此暂时没有想到合适的例子。