sizeof оператор не должен иметь операнда, который является параметром функции, объявленным как «массив типа»
sizeof оператор не должен иметь операнда, который является параметром функции, объявленным как «массив типа».
Это правило основано на MISRA C ®: 2012 Поправка 1.
sizeof оператор, действующий на массив, обычно возвращает размер массива в байтах. Например, в следующем коде: sizeof(arr) возвращает размер arr в байтах.
int32_t arr[4]; size_t numberOfElements = sizeof (arr) / sizeof(arr[0]);
Однако, когда массив является параметром функции, он вырождается в указатель. sizeof оператор, действующий на массив, возвращает соответствующий размер указателя, а не размер массива.
Использование sizeof оператор в массиве, который является параметром функции, обычно указывает непреднамеренную ошибку программирования.
sizeof оператор не должен иметь операнда, который является параметром функции, объявленным как «массив типа».
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Выражения |
| Категория: Обязательно |
| Категория СМЖЛ: обязательная |