【发布时间】:2011-12-29 11:51:24
【问题描述】:
我正在使用 VS2005 编译器,我希望以下代码会出现编译错误。
int a=1, b= 2, c=3;
a = (b,c);
赋值后的值为 3。根据我的理解,它应该给出编译错误。
我很乐意知道这背后是否有任何正当理由。
【问题讨论】:
-
为什么这会是一个编译错误?除非你的意思是你在第二行末尾忘记的分号?
-
首先,为什么你希望这是一个编译错误?
-
发布更完整的示例会更有帮助,因为您的代码确实会产生编译错误 - 它缺少尾随分号并且您无法分配该范围内的值。以下是否反映了您的预期? int main() { int a=1, b= 2, c=3; a = (b,c); }
-
据我了解,如果语句没有做任何事情或导致问题,那么可能是编译器应该给出错误。在这里,变量 b 根本没有被使用,任何阅读代码的人都会感到困惑。根据我的理解,它根本没有使用它应该给出错误。
-
@Vijay:编译器不会出错,因为代码是有效的。你也许可以让它发出警告;如果您指定
-Wall或-Wunused,GCC 肯定会对此发出警告(如果您愿意,也可以通过指定-Werror将其设为错误)。
标签: c++ compiler-errors comma-operator