У меня есть вопрос по поводу плавающих констант в С.плавающие константы в C
В Java, тип по умолчанию Константы с плавающей точкой в два раза, так что следующее вызывает ошибку компиляции в Java:
float f = 100.0; // we either need to uses type case operator or put f at the end of the number constant.
Это связано с тем, что константы с плавающей запятой по умолчанию имеют тип double и литье из double в float без оператора литья типа - это ошибка, поэтому нам нужно либо добавить оператор case типа, либо поместить f в конец номера.
Итак, почему в C это не вызывает ошибку, потому что константы с плавающей запятой по умолчанию имеют тип float или потому, что компилятор выполняет неявное преобразование с понижающим преобразованием (которое не требует типа случай оператора в C) ????
спасибо за спецификации. –