Outils pour utilisateurs

Outils du site


lang:c:cast

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
lang:c:cast [2020/03/03 23:00] – Précision sur "Gérer les dépassements de limites" rootlang:c:cast [2020/03/04 08:21] (Version actuelle) – Ajout des cast explicite pour les nombres root
Ligne 6: Ligne 6:
 </code> </code>
  
-===Cast explicite===+===Cast explicite lors de la déclaration=== 
 +Définir un nombre non signé : 
 +<code c> 
 +unsigned int i = 0xFFFFFFFFU; 
 +</code> 
 + 
 +Définir un nombre 64 bits : 
 +<code c> 
 +unsigned long i = 0xFFFFFFFFFFFFFFFFLU; 
 +</code> 
 + 
 +Définir un nom flottant (et par un double) 
 +<code c> 
 +float f = 0.1f; 
 +</code> 
 + 
 +===Cast explicite lors de la  conversion (C uniquement)===
  
 Ici, un cast explicite est nécessaire si ''-Wconversion'' est activé car une perte de précision est prévisible entre ''double'' et ''float''. Ici, un cast explicite est nécessaire si ''-Wconversion'' est activé car une perte de précision est prévisible entre ''double'' et ''float''.
Ligne 15: Ligne 31:
 </code> </code>
  
-Un cast se fait tout simplement en ajoutant les parenthèses.+Un cast se fait tout simplement en ajoutant entre parenthèses le type de destination. 
 + 
 +Il peut être aussi nécessaire de réajuster un pointeur pour l'utiliser dans une fonction. 
 + 
 +<code c> 
 +const char * t = "coucou"; 
 + 
 +void f(unsigned char * tt) 
 +
 +
 + 
 +int main() 
 +
 +  f((unsigned char *)t); 
 +}</code>
  
 ===Gérer les dépassements de limites=== ===Gérer les dépassements de limites===
Ligne 35: Ligne 65:
 } }
 </code> </code>
- 
-===Réajuster un pointeur pour l'utiliser dans une fonction=== 
- 
-<code c> 
-const char * t = "coucou"; 
- 
-void f(char * tt) 
-{ 
-} 
- 
-int main() 
-{ 
-  f((char *)t); 
-}</code> 
lang/c/cast.1583272834.txt.gz · Dernière modification : 2020/03/03 23:00 de root