Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
V2514. MISRA. Unions should not be used.
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V2514. MISRA. Unions should not be used.

19 Ноя 2018

Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.

Анализатор выдаст предупреждение, если обнаружит объявление объединения.

Неправильное использование объединений может приводить к различным проблемам, например, к получению неверных значений или к возникновению неопределённого поведения.

Например, в случае C++, неопределённое поведение может возникнуть, когда значение считывается не из члена, в который производилась запись в последний раз.

Пример кода, на который анализатор выдаст предупреждение:

union U
{
  unsigned char uch;
  unsigned int ui;
} uni;
....
uni.uch = 'w';
int ui = uni.ui;

Данная диагностика классифицируется как:

  • MISRA-C-19.2
  • MISRA-CPP-9.5.1