我在下面的C代碼運行靜態代碼分析2004年MISRA和MISRA 2012:雙方都有副作用?
BOOL_TYPE Strings_Are_Equal(const char *s1, const char *s2)
{
BOOL_TYPE result = True;
const char *str1 = s1;
const char *str2 = s2;
if (NULL == s1 || NULL == s2)
{
result = False;
}
else if (strlen(s1) != strlen(s2))
{
result = False;
}
else
{
while (*str1 != 0)
{
if(tolower(*str1++) != tolower(*str2++))
{
result = False;
break;
}
}
}
return result;
}
有人可以請解釋如何第58行和第66行代碼有副作用,我應該如何糾正它?
正確答案imo。自從你指出我最初忘記的內容以來,我給了你一個贊成票。 (它一定是被驅動器downvoting) – 2501
拒絕投票的理由?缺乏MISRA規則和C標準的引用?我在答案中找不到任何錯誤。 – Lundin