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在平常工作中很少见到实例,因此暂时没有想到合适的例子。