在干净编译警告期间,我遇到了以下代码:
char *strcpy(char *dest, char *src)
{
unsigned int i;
while( dest[i] = src[i] )//assignment in condition
i++;
return dest;
}
代码的基本功能应该没问题,但是编译器警告assignment in condition
,这部分代码有没有潜在的风险?这种警告是否需要清除?
最佳答案
各种warning需要清理
引入此警告是因为 =
和 ==
经常被程序员混淆(你好,Pascal!),并且可以通过在赋值周围添加括号来明确说明您的意图表达式:
if ((x = y)) // no warning
关于反对警告检查的编码风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26416833/