Хорошо известно, что в C литералы с плавающей запятой (например, 1.23) имеют тип double. Как следствие, любой расчет, который их включает, увеличивается до двух.
Я работаю над встроенной системой реального времени, которая имеет модуль с плавающей запятой, который поддерживает только одинарные значения точности (float). Все мои переменные float, и этой точности достаточно. Мне не нужно (и не могу позволить себе) double вообще. Но каждый раз что-то вроде
if (x < 2.5) ...
происходит бедствие: замедление может быть до двух порядков. Конечно, прямой ответ - написать
if (x < 2.5f) ...
 но это так легко пропустить (и его трудно обнаружить до слишком позднего времени), особенно когда значение "конфигурации" #define 'd в отдельном файле менее дисциплинированным (или только новым) разработчиком.
Итак, есть ли способ заставить компилятор обрабатывать все (с плавающей запятой) литералы как float, как будто с суффиксом f? Даже если это противоречит спецификациям, мне все равно. Или любые другие решения? Кстати, компилятор gcc.