Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

C - Moulage de type

La conversion d'un type de données en un autre est connue sous le nom de conversion de type ou conversion de type. Par exemple, si vous souhaitez stocker une valeur 'long' dans un entier simple, vous pouvez taper cast 'long' to 'int'. Vous pouvez convertir les valeurs d'un type à un autre explicitement à l'aide de l'opérateur de conversion comme suit −

(type_name) expression

Considérez l'exemple suivant où l'opérateur cast provoque la division d'une variable entière par une autre comme une opération à virgule flottante −

Démo en direct
#include <stdio.h>

main() {

   int sum = 17, count = 5;
   double mean;

   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −

Value of mean : 3.400000

Il convient de noter ici que l'opérateur cast a priorité sur la division, donc la valeur de sum est d'abord converti en type double et enfin, il est divisé par le nombre, ce qui donne une valeur double.

Les conversions de type peuvent être implicites, ce qui est effectué automatiquement par le compilateur, ou elles peuvent être spécifiées explicitement via l'utilisation de l'opérateur cast . Il est considéré comme une bonne pratique de programmation d'utiliser l'opérateur cast chaque fois que des conversions de type sont nécessaires.

Promotion d'entier

La promotion d'entiers est le processus par lequel les valeurs de type entier "plus petit" que int ou entier non signé sont convertis soit en int ou entier non signé . Considérons un exemple d'ajout d'un caractère avec un entier −

Démo en direct
#include <stdio.h>

main() {

   int  i = 17;
   char c = 'c'; /* ascii value is 99 */
   int sum;

   sum = i + c;
   printf("Value of sum : %d\n", sum );
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −

Value of sum : 116

Ici, la valeur de sum est 116 car le compilateur effectue une promotion entière et convertit la valeur de 'c' en ASCII avant d'effectuer l'opération d'addition proprement dite.

Conversion arithmétique habituelle

Les conversions arithmétiques habituelles sont implicitement exécutées pour convertir leurs valeurs en un type commun. Le compilateur effectue d'abord la promotion d'entiers; si les opérandes ont toujours des types différents, alors ils sont convertis dans le type qui apparaît le plus haut dans la hiérarchie suivante −

Les conversions arithmétiques usuelles ne sont pas effectuées pour les opérateurs d'affectation, ni pour les opérateurs logiques &&et ||. Prenons l'exemple suivant pour comprendre le concept −

Démo en direct
#include <stdio.h>

main() {

   int  i = 17;
   char c = 'c'; /* ascii value is 99 */
   float sum;

   sum = i + c;
   printf("Value of sum : %f\n", sum );
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −

Value of sum : 116.000000

Ici, il est simple de comprendre que le premier c est converti en entier, mais comme la valeur finale est double, la conversion arithmétique habituelle s'applique et le compilateur convertit i et c en 'float' et les ajoute en donnant un résultat 'float'.


Langue C

  1. Conversion de types C#
  2. Conversion de type Python et conversion de type
  3. Casting de type Java
  4. Types de variables C++
  5. C# - Types de données
  6. C# - Conversion de types
  7. C# – Nullables
  8. C# - Attributs
  9. Comprendre le moulage sous pression