Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C-Programmierung: Typumwandlung & Konvertierung meistern

Das Konvertieren eines Datentyps in einen anderen wird als Typumwandlung (Type Casting) oder Typkonvertierung bezeichnet. Zum Beispiel, wenn Sie einen long-Wert in einen einfachen Integer speichern möchten, können Sie long zu int umwandeln. Sie können Werte explizit mit dem Cast-Operator von einem Typ in einen anderen konvertieren:

(typ_name) ausdruck

Betrachten Sie das folgende Beispiel, bei dem der Cast-Operator bewirkt, dass die Division einer Integer-Variablen durch eine andere als Gleitkomma-Operation durchgeführt wird:

Live Demo
#include <stdio.h>
main() {
    int sum = 17, count = 5;
    double mean;
    mean = (double) sum / count;
    printf("Value of mean : %f\n", mean );
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis:

Value of mean : 3.400000

Es ist zu beachten, dass der Cast-Operator Vorrang vor der Division hat, sodass der Wert von sum zuerst in den Typ double konvertiert und schließlich durch count dividiert wird, was einen double-Wert ergibt.

Typkonvertionen können implizit sein, was automatisch vom Compiler durchgeführt wird, oder sie können explizit durch die Verwendung des Cast-Operators angegeben werden. Es gilt als gute Programmierpraxis, den Cast-Operator immer dann zu verwenden, wenn Typkonvertierungen notwendig sind.

Integer Promotion (Ganzzahl-Förderung)

Integer Promotion ist der Prozess, bei dem Werte von ganzzahligen Typen, die "kleiner" als int oder unsigned int sind, entweder in int oder unsigned int konvertiert werden. Betrachten Sie ein Beispiel für die Addition eines Zeichens mit einem Integer:

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 );
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis:

Value of sum : 116

Hier ist der Wert von sum 116, weil der Compiler Integer Promotion durchführt und den Wert von 'c' in ASCII konvertiert, bevor er die eigentliche Additionsoperation ausführt.

Übliche Arithmetische Konvertierung

Die üblichen arithmetischen Konvertierungen werden implizit durchgeführt, um ihre Werte in einen gemeinsamen Typ umzuwandeln. Der Compiler führt zuerst Integer Promotion durch; wenn die Operanden immer noch unterschiedliche Typen haben, werden sie in den Typ konvertiert, der in der folgenden Hierarchie am höchsten erscheint:

C-Programmierung: Typumwandlung & Konvertierung meistern

Die üblichen arithmetischen Konvertierungen werden nicht für Zuweisungsoperatoren noch für die logischen Operatoren && und || durchgeführt. Lassen Sie uns das folgende Beispiel betrachten, um das Konzept zu verstehen:

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 );
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis:

Value of sum : 116.000000

Hier ist es einfach zu verstehen, dass zuerst c in einen Integer konvertiert wird, aber da der Endwert double ist, gilt die übliche arithmetische Konvertierung und der Compiler konvertiert i und c in float und addiert sie, was ein float-Ergebnis ergibt.

C Sprache

  1. C#-Typkonvertierung meistern: Implizit, Explizit, Parse und Convert-Methoden
  2. Python-Typkonvertierung & Casting meistern: Umfassender Leitfaden
  3. Java Type Casting meistern: Von Widening zu Narrowing und darüber hinaus
  4. C++ Variablentypen: Speicher, Limits & Operationen
  5. Umfassender Leitfaden zu C# Datentypen: Wert-, Referenz- und Zeigertypen
  6. Typkonvertierung in C# verstehen: Implizites & Explizites Casting erklärt
  7. C# Nullable Types: Sicherer Umgang mit Null-Werten
  8. C# Attribute: Metadaten für Compiler & Runtime
  9. Druckguss erklärt: Präzision, Effizienz und Produktionsvorteile
  10. Präzisionsguss: Verfahren, Anwendungen und Vorteile im Detail