Я побежал статический анализ кода для MISRA 2004 и MISRA 2012 на следующий код C:Обе стороны имеют побочные эффекты?
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;
}
и получили следующие результаты из отчетов PC-Lint:
Может кто-нибудь объяснить, как это код в строке 58 и 66 страдает от побочных эффектов и как мне его исправить?
Правильный ответ imo. Я дал вам взнос, так как вы указали, что я забыл вначале. (Должно быть, это было дисквалификацией) – 2501
Причина голосования? Отсутствие котировок по правилам MISRA и стандарту C? Я не могу найти никаких ошибок в ответе. – Lundin