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: Обязательно |