Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C - Type gieten

Het omzetten van het ene datatype naar het andere staat bekend als type casting of type-conversie. Als u bijvoorbeeld een 'long'-waarde in een eenvoudig geheel getal wilt opslaan, kunt u 'long' naar 'int' typen. U kunt de waarden expliciet van het ene type naar het andere converteren met behulp van de cast-operator als volgt −

(type_name) expression

Beschouw het volgende voorbeeld waarin de cast-operator ervoor zorgt dat de deling van een integer-variabele door een andere wordt uitgevoerd als een drijvende-kommabewerking −

Live demo
#include <stdio.h>

main() {

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

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

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

Value of mean : 3.400000

Hier moet worden opgemerkt dat de cast-operator voorrang heeft op deling, dus de waarde van som wordt eerst geconverteerd naar het type double en tenslotte wordt het gedeeld door telling, wat een dubbele waarde oplevert.

Typeconversies kunnen impliciet zijn, wat automatisch door de compiler wordt uitgevoerd, of het kan expliciet worden gespecificeerd door het gebruik van de cast-operator . Het wordt als een goede programmeerpraktijk beschouwd om de cast-operator te gebruiken wanneer typeconversies nodig zijn.

Integer-promotie

Integer-promotie is het proces waarbij waarden van het type integer "kleiner" zijn dan int of unsigned int worden geconverteerd naar int of unsigned int . Overweeg een voorbeeld van het toevoegen van een teken met een geheel getal −

Live demo
#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 );
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

Value of sum : 116

Hier is de waarde van som 116 omdat de compiler een integer-promotie uitvoert en de waarde van 'c' converteert naar ASCII voordat de feitelijke optelbewerking wordt uitgevoerd.

Gebruikelijke rekenkundige conversie

De gebruikelijke rekenkundige conversies worden impliciet uitgevoerd om hun waarden naar een gemeenschappelijk type te casten. De compiler voert eerst integer-promotie uit; als de operanden nog steeds verschillende typen hebben, worden ze geconverteerd naar het type dat het hoogst in de volgende hiërarchie voorkomt −

De gebruikelijke rekenkundige conversies worden niet uitgevoerd voor de toewijzingsoperatoren, noch voor de logische operatoren &&en ||. Laten we het volgende voorbeeld nemen om het concept te begrijpen −

Live demo
#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 );
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

Value of sum : 116.000000

Hier is het eenvoudig te begrijpen dat eerst c wordt geconverteerd naar een geheel getal, maar omdat de uiteindelijke waarde dubbel is, is de gebruikelijke rekenkundige conversie van toepassing en converteert de compiler i en c naar 'float' en voegt ze toe, wat een 'float'-resultaat oplevert.


C Taal

  1. C# Type conversie
  2. Python Type Conversie en Type Casting
  3. Java Type Casting
  4. C++ Char-gegevenstype met voorbeelden
  5. Typen C++-variabelen
  6. C# - Gegevenstypen
  7. C# - Typeconversie
  8. C# - Nullables
  9. C# - Kenmerken
  10. Spuitgieten begrijpen
  11. Precisie gietgids