本着与诸如“x = ++x” is it really undefined?之类的序列点相关的未定义行为的精神,人们如何使编译器提示这种代码?

具体来说,我使用的是Visual Studio 2010和Xcode 4.3.1(后者用于OSX应用程序),但都没有警告过我。我什至把VS2010上的警告提高为“全部”,并且很高兴地对此进行了编译。 (根据记录,VS2010的版本向变量添加了1,其中Xcode的版本使变量保持不变。)

最佳答案

AFAIK,Visual Studio不会检测到这种情况。我个人并不认为这样做有很多意义。我想说,对于像这样的相当明显的案例发出警告,主要具有教育值(value),但没有太大的实际值(value)。在一般情况下,当*p = ++*qp碰巧指向同一对象时,问题就发生在q之类的情况下。不用说,编译器无法检测到它们。

关于c - 如何获得像 "x = x++"这样的VS或Xcode警告?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11371920/

10-12 17:17
查看更多