Questions tagged «undefined-behavior»

13
未定义行为背后的哲学
C \ C ++规范为编译器以自己的方式实现提供了许多开放的行为。这里经常有很多问题被问到同样的问题,并且我们有一些很好的帖子: https://stackoverflow.com/questions/367633/what-are-all-the-common-undefined-behaviour-that-ac-programmer-should-know-abo https://stackoverflow.com/questions/4105120/what-is-undefined-behavior https://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points 我的问题不是关于不确定行为是什么,还是真的不好。我确实知道该标准的危险和大多数相关的未定义行为引用,因此请不要发布有关该标准有多严重的答案。这个问题是关于为编译器实现留出许多行为的背后的哲学。 我读了一篇很棒的博客文章,指出性能是主要原因。我想知道性能是否是允许它的唯一标准,或者是否有其他因素会影响将事情开放给编译器实现的决定? 如果您有任何示例可以引用某个特定的未定义行为为编译器提供足够的优化空间,请列出它们。如果您知道性能以外的其他因素,请提供足够详细的答案。 如果您不理解该问题或没有足够的证据/来源来支持您的答案,请不要发布广泛猜测的答案。

11
为什么C ++具有“未定义的行为”(UB),而其他语言(如C#或Java)却没有?
这篇Stack Overflow帖子列出了C / C ++语言规范声明为“未定义行为”的情况的相当全面的列表。但是,我想了解为什么其他现代语言(例如C#或Java)没有“未定义行为”的概念。这是否意味着编译器设计者可以控制所有可能的方案(C#和Java)或不能控制(C和C ++)?

10
是什么让C开发人员如此好奇“ i ++ == ++ i”?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 只是随机观察,似乎在StackOverflow.com上,是否存在有关“ ++ i == i ++”的问题。这个问题一直被问到,我想我在过去两个月中看到了大约6到7次问。 我只是想知道为什么C开发人员对它如此感兴趣?C#和Java开发人员也存在相同的概念/问题,但我想我只看到一个与C#相关的问题。 是因为有这么多示例使用++ i吗?是因为有一些受欢迎的书或教程吗?是因为C开发人员只是喜欢尽可能多地将它们塞进一行以提高“效率” /“性能”,并因此更频繁地使用++运算符遇到“怪异”的构造?

5
Java中未定义的行为
我在SO上阅读了这个问题,讨论了C ++中一些常见的未定义行为,我想知道:Java是否也具有未定义的行为? 如果是这样,那么Java中未定义行为的一些常见原因是什么? 如果不是,那么Java的哪些功能使其摆脱了此类行为,为什么没有使用这些属性实现最新版本的C和C ++?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.