AUTOSAR C++14 Rule M3-9-3

Базовые битные представления значений с плавающей точкой не должны использоваться

Описание

Управляйте определением

Базовые битные представления значений с плавающей точкой не должны использоваться.

Объяснение

Базовые битные представления значений с плавающей точкой варьируются через компиляторы. Если вы непосредственно используете базовое представление значений с плавающей точкой, ваша программа не является портативной через реализации.

Реализация Polyspace

Средство проверки правила отмечает преобразования от указателей до типов с плавающей точкой в указатели на целочисленные типы, и наоборот.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Примеры

развернуть все

float fabs2(float f) {
    unsigned int* ptr = reinterpret_cast <unsigned int*> (&f); //Noncompliant
    *(ptr + 3) &= 0x7f;
    return f;
}

В этом примере, reinterpret_cast попытки бросить значение с плавающей точкой до целого числа и получить доступ к базовому битному представлению значения с плавающей точкой.

Проверяйте информацию

Группа: фундаментальные понятия
Категория: необходимый, автоматизированный
Введенный в R2019a