你怎么能让C编译器假设十进制文字(例如1.23)是浮点而不是双?

Hob*_*Ben 1 c compiler-construction gcc

在我的源代码中,如果我将1.23写为文字,例如doThis(1.23),gcc假设它是双精度数.

除了输入doThis((float)1.23)之外,有没有办法使用浮点数作为十进制文字/常量,除非在单个源文件中另有说明?

超级奖励点,是否有一种方法可以跨越(几乎)每个C编译器?

Rol*_*lig 7

是的,标准的方法是写1.23f.它适用于每个C编译器,因为它在ISO C99第6.4.4.2浮动常量中定义.ISO C90和K&R有类似的定义.


Bas*_*ink 5

尝试:

float fred = 0.37f;
Run Code Online (Sandbox Code Playgroud)

  • 尤达说:'做或不做.没有尝试'. (3认同)