好像
if (x=y) { .... }
而不是
if (x==y) { ... }
是万恶之源。
为什么不所有编译器将其标记为错误而不是可配置的警告?
我有兴趣找出构造 if (x=y)
有用的情况。
最佳答案
一个有用的结构是例如:
char *pBuffer;
if (pBuffer = malloc(100))
{
// Continue to work here
}
如前所述,并且现在被多次否决,我可能会补充说这不是特别好的风格,但我经常看到它说它很有用。我在 new
中也看到过这种情况,但它让我的胸口更痛。
另一个争议较小的例子可能是:
while (pointer = getNextElement(context))
{
// Go for it. Use the pointer to the new segment of data.
}
这意味着函数 getNextElement()
在没有下一个元素时返回 NULL
以便退出循环。
关于c++ - 无意中使用 = 而不是 ==,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/399792/