Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1366 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  int et long

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

int et long

n°254908
bobbyf
Posté le 27-11-2002 à 11:23:45  profilanswer
 

si on declare x comme une variable de type long ,est-ce que l'initialisation x=1 est incorrecte?
si oui que faut-il faire,un transtypage ou autre ?
merci de me  repondre.

mood
Publicité
Posté le 27-11-2002 à 11:23:45  profilanswer
 

n°254921
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-11-2002 à 11:34:45  profilanswer
 

x=1l je dirais, mais si tu mets juste 1 ça passe sans problèmes


Message édité par antp le 27-11-2002 à 11:35:00

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°254922
BENB
100% Lux.
Posté le 27-11-2002 à 11:35:40  profilanswer
 

Pour etre tres rigoureux il faudrait faire i=1L; il me semble.

n°254938
bobbyf
Posté le 27-11-2002 à 11:53:05  profilanswer
 

ca veut dire qu'il faut faire x=(long)1  ?

n°254943
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-11-2002 à 11:58:13  profilanswer
 

bobbyf a écrit a écrit :

ca veut dire qu'il faut faire x=(long)1  ?




 
là tu transformes l'integer 1 en long puis tu le mets dans x
 
avec x = 1L tu mets le long 1 dans x


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°254999
bobbyf
Posté le 27-11-2002 à 12:45:04  profilanswer
 

excuse de reposer la question mais en c t'ecris  ca commet x=1l ?

n°255002
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-11-2002 à 12:47:19  profilanswer
 

x = 1L;
 
simplement


Message édité par antp le 27-11-2002 à 12:47:43

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°255054
BENB
100% Lux.
Posté le 27-11-2002 à 13:45:09  profilanswer
 

antp a écrit a écrit :

 
 
là tu transformes l'integer 1 en long puis tu le mets dans x
 
avec x = 1L tu mets le long 1 dans x




 
pour les litterales :
1 est un int
1U est un unsigned int
1L est un long
1. est un double
1.0F est un float...
 
ceci dit sur bcp de systemes int et long sont identiques...
bcp, mais pas tous...

n°255255
BifaceMcLe​OD
The HighGlandeur
Posté le 27-11-2002 à 16:04:30  profilanswer
 

Et comme le C n'offre pas un typage vraiment fort, la constante littérale 1 a un peu tous ces types-là à la fois... :sarcastic:

n°255380
BENB
100% Lux.
Posté le 27-11-2002 à 17:46:42  profilanswer
 

BifaceMcLeOD a écrit a écrit :

Et comme le C n'offre pas un typage vraiment fort, la constante littérale 1 a un peu tous ces types-là à la fois... :sarcastic:  




 
Un peu seulement... avec des suprise a la clef si on n'y prend pas trop garde... (divisions entieres...)

mood
Publicité
Posté le 27-11-2002 à 17:46:42  profilanswer
 

n°255384
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-11-2002 à 17:48:27  profilanswer
 

ouaip. Exemple récent, j'avais besoin de la valeur "infini":
1/0 = erreur, division par zéro
1.0/0.0 = infini


Message édité par antp le 27-11-2002 à 17:49:00

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°255473
fabsk
Posté le 27-11-2002 à 19:56:48  profilanswer
 

BifaceMcLeOD a écrit a écrit :

Et comme le C n'offre pas un typage vraiment fort, la constante littérale 1 a un peu tous ces types-là à la fois... :sarcastic:  




Bah, moi je dirais que c'est un int. En C++, chez moi avec g++, le bout  de code suivant
 

Code :
  1. #include <iostream>
  2. int main()
  3. {
  4.   std::cout << (typeid(1L)==typeid(int)) << std::endl;
  5.   std::cout << (typeid(1)==typeid(int)) << std::endl;
  6. }

 
 
affiche:
0
1
 

n°255758
Musaran
Cerveaulté
Posté le 28-11-2002 à 00:15:07  profilanswer
 

Plus simple:

Code :
  1. std::cout << typeid(1 ).name() << std::endl;
  2. std::cout << typeid(1L).name() << std::endl;


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°256084
BifaceMcLe​OD
The HighGlandeur
Posté le 28-11-2002 à 13:25:11  profilanswer
 

fabsk a écrit a écrit :

 
Bah, moi je dirais que c'est un int. En C++, chez moi avec g++, le bout  de code suivant
 

Code :
  1. #include <iostream>
  2. int main()
  3. {
  4.   std::cout << (typeid(1L)==typeid(int)) << std::endl;
  5.   std::cout << (typeid(1)==typeid(int)) << std::endl;
  6. }

 
affiche:
0
1




Alors explique-moi pourquoi le code suivant compile (et fonctionne) :

Code :
  1. void toto(long l)
  2. {
  3.   cout << "toto";
  4. }
  5. int main(void)
  6. {
  7.   toto(1);
  8.   return 0;
  9. }



Message édité par BifaceMcLeOD le 28-11-2002 à 13:25:33
n°256308
BENB
100% Lux.
Posté le 28-11-2002 à 17:03:35  profilanswer
 

BifaceMcLeOD a écrit a écrit :

 
Alors explique-moi pourquoi le code suivant compile (et fonctionne) :

Code :
  1. void toto(long l)
  2. {
  3.   cout << "toto";
  4. }
  5. int main(void)
  6. {
  7.   toto(1);
  8.   return 0;
  9. }


 




 
Parce qu'il y a convertion due a la non ambuguité...
le code C++ suivant ne compile plus...
 

Code :
  1. void toto(long l)
  2. {
  3.   cout << "toto int";
  4. }
  5. void toto(double l)
  6. {
  7.   cout << "toto double";
  8. }
  9. int main(void)
  10. {
  11.   toto(1);
  12.   return 0;
  13. }


Message édité par BENB le 28-11-2002 à 17:04:29

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  int et long

 

Sujets relatifs
Comment convertir un long en String ??Un long timer de plus de 60 000 c possible ?
Un FOR trop long ??...[MySQL] Acces avec des outils a la base super long
Bug des sessions sur le long terme [résolu] ?[Standardisation] Ansi/ISO C... pourquoi ca a ete aussi long ?
affichage d'une date au format long (mardi 20 aout 2002)[C sous Unix] != entre short int, int, et long int !!!
[Java] Lire un long dans un fichier écrit en CComment convertir long int -> chaine de char ?
Plus de sujets relatifs à : int et long


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR