我开了一个C99标准。通道 4 “一致性”,第 2 页说如下:
如果出现在约束之外的“应”或“不应”要求被违反,则行为未定义。[...]
下面,在第。5 我们看到以下内容:
[...] (2) 它不应产生依赖于任何未指定、未定义或实现定义的行为的输出,并且不应超过任何最小实现限制。
这对我来说似乎表明实现定义的行为是未定义的行为,因为程序“不应”依赖于实现定义的行为。
现在,我有两个问题:
嗨,我想在 nim 中进行无限循环。不是无限休眠的函数,它必须是一个循环。
试着写这个
while true:
;
Run Code Online (Sandbox Code Playgroud)
但是编译器说它需要一个表达式。当我将表达式放入循环体时,即
while true:
0
Run Code Online (Sandbox Code Playgroud)
编译器说没有使用该表达式并拒绝编译我的程序。一个明显的技巧是将表达式转换为void,这种类型的表达式将被丢弃。
while true:
cast[void](0)
Run Code Online (Sandbox Code Playgroud)
但是现在编译器期望void作为 void 转换的参数