Skip to content

UB13

Definition⚓︎

A non-value representation is produced by a side effect that modifies any part of the object

using 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。

UB13定义了,左值表达式(非character类型)副作用产生non-value representation为未定义行为。这里对character类型的宽容或许表现出C语言自由的风格。

code⚓︎

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