让战斗开始吧..
另一个question已经开始了有关char
的激烈讨论,以及实现带有trap representations的可能性。
问题:
char
可能有陷阱值吗? 在前面的讨论中已经提到的报价:
这些部分是上一论点中引用最多的部分,它们是否矛盾?
最佳答案
该标准告诉我们必须有:
摆动空间不大。
不过,有人建议在某些类型的操作期间(例如,加载未初始化的内存或转换为陷阱)可能会发生。
是的,我认为一个实现可以具有陷阱表示形式,其中陷阱值可能由于某种未定义或未指定的行为而出现,包括评估涉及未指定/未初始化的值的表达式。导致陷阱值的实际位模式对实现不可见。
这样的CPU可能有9位字节,其中编译器和运行时仅可见8位,而第9位用于检测未初始化的内存,如果被(未特权)指令加载,则会触发陷阱。
关于c++ - 一个简单的 `char`可以有陷阱值吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24034296/