Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
V2533. MISRA. C-style and functional...
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V2533. MISRA. C-style and functional notation casts should not be performed.

24 Апр 2019

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

Это правило справедливо только для C++.

C-подобное (C-style cast) и приведение типов в функциональном стиле (functional cast) способны осуществлять преобразования между несвязанными типами, что может привести к ошибке.

Следует явно приводить типы с использованием операторов 'static_cast', 'const_cast' и 'reinterpret_cast'.

Примеры, на которые анализатор выдаст срабатывание:

int i;
double d;
size_t s;
void *p;
....
i = int(p);      //V2533
d = (double)s;   //V2533
s = (size_t)(i); //V2533 
p = (void *)(d); //V2533

Исключение: приведение к типу void не несёт в себе никакой опасности и используется, чтобы подчеркнуть, что некий результат никак не используется. Пример:

(void)fclose(f);

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

  • MISRA-CPP-2008-5.2.4