2016-01-04 2 views
-2

Je suis tombé sur une syntaxe en C avec laquelle je ne suis pas familier. Après avoir déclaré une variable, long ja, la variable a ensuite été affectée à ja=(long)(3.14).Tapez entre parenthèses dans la variable C définition

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

Quelle est l'importance d'avoir (long) ou (type de variable) dans l'affectation à une variable qui a déjà été déclarée?

+2

C'est un [cast] (http://www.tutorialspoint.com/cprogramming/c_type_casting.htm) d'un type à l'autre. –

+1

C11 projet de norme n1570, '6. Langue 6.5 Expressions 6.5.4 Opérateurs de cast '. Je soupçonne qu'il y a beaucoup de langage que vous ne connaissez pas. Cette partie n'est pas exactement obscure. – EOF

+0

'long ja;' déclare et définit la variable. – librik

Répondre

5

Cette ligne est une mission, pas une déclaration:

ja=(long)(3.14); 

Il faut 3.14, qui est une constante de type double, jette à long (résultant de la valeur 3), et attribue cette valeur à ja.

0

La valeur 3,14 est un literal float, et ja est une long
tentative d'assigner la valeur flottante à un longlvalue se traduirait par un avertissement du compilateur, tels que:

warning: la conversion implicite transforme le nombre à virgule flottante en entier: double à long.

Pour faciliter la tâche correctement, et de supprimer l'avertissement, la syntaxe

ja=(long)(3.14) 

est dit typecast3.14-long. La spécification de type est une manière de faire en sorte qu'une variable d'un type, telle qu'un flottant, agisse comme un autre type, comme un long, pour une seule opération.