1
2
笔记一 程序的行为不是规范所要求的唯一事情。例如,实现还必须记录各种实现定义的行为。因此,这个假设的C实现与一些抽象机的行为相同,它还必须包含所需的文档。 |
2
2
是的,你是对的。编译器可以做它想做的, 如果观察到的行为与抽象机器所能产生的行为相同 . 但这本身并不是戏剧性的:为什么我们会关心一些不能被观察到的东西?这是优化编译器的关键。 例子:
它将要打印的唯一可观察的行为
这意味着你不能使用 空的 循环来增加延迟,因为它们可以被优化,根本不会产生延迟。 imho最显著的副作用,如果允许编译器假设程序中不会发生未定义的行为。 第二个例子:
幼稚的编译器应该显示0到31之间的所有数字,因为我们知道数组
|
Robert E. Brown · 嵌套类的嵌套类的访问权限 6 年前 |
YSC · 通过成员指针访问受保护的成员:这是黑客行为吗? 6 年前 |
Swift - Friday Pie · 交换数学运算的阶 6 年前 |
Acorn · Linux内核的\uu is\u constexpr宏 6 年前 |
Acorn · 检测宏中的整数常量表达式 6 年前 |
Petr Skocik · 兼容类型并忽略C类型系统中的顶级限定符 6 年前 |