如何使用"x = x ++"之类的东西获得VS或Xcode警告?

Jim*_*uck 5 c visual-studio-2010 undefined-behavior sequence-points xcode4.3

本着与序列点相关的未定义行为的精神,例如"x = ++ x",它是否真的未定义?,如何让编译器抱怨这样的代码?

具体来说,我使用的是Visual Studio 2010和Xcode 4.3.1,后者是OSX应用程序,并没有提醒我这一点.我甚至把VS2010上的警告发送到"全部",并且很高兴编译了这个.(为了记录,VS2010的版本在变量中添加了1,其中Xcode的版本保持变量不变.)

AnT*_*AnT 2

AFAIK,Visual Studio 不会检测到这种情况。我个人并不认为这样做有什么意义。我想说,对这样一个相当明显的案例的警告主要具有教育价值,但没有太多实用价值。一般情况下,所讨论的问题发生在和碰巧指向同一个对象的*p = ++*q情况下。不用说,编译器无法检测到它们。pq