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