在C变量定义中键入括号

时间:2016-01-04 21:33:25

标签: c variables types declaration definition

我在C中遇到了一些我不熟悉的语法。声明变量long ja后,该变量随后被分配为使用ja=(long)(3.14)

long ja;
ja=(long)(3.14);

在已经声明的变量的赋值中使用(long)( 变量类型 )有什么意义?

2 个答案:

答案 0 :(得分:5)

此行是作业,而不是声明:

ja=(long)(3.14);

3.14需要double类型的常量,将其转换为long(得到值3),并将该值赋给{{} 1}}。

答案 1 :(得分:1)

3.14 literal float ja long
尝试将浮动值分配给long lvalue 会导致编译器警告,例如:

  

警告:隐式转换将文字浮点数转换为   整数:从double到long。

为了方便分配,并禁止警告,语法

ja=(long)(3.14)

被称为 typecast 3.14long
类型转换是一种使一种类型的变量(例如浮点数)像另一种类型(如long)一样操作的方法。