Мне известно, что приведение целых чисел к плавающим (и наоборот) довольно дорого. Однако делает ли компилятор это автоматически во время компиляции констант в вашем коде? Например, есть ли разница между
float y = 123;
float x = 1 / y;
и
float y = 123.f;
float x = 1.f / y;
Я вижу некоторый код, который выполняет последнее, но я не уверен, что это из-за проблем оптимизации или безопасности (т. Е. Просто чтобы убедиться, что деление - это с плавающей запятой, даже если y оказывается int)
Я использую gcc (поскольку ответ может зависеть от компилятора.)
Также приветствуются любые указатели на список того, что компилятор может и не может оптимизировать в целом. Спасибо!