Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Typkonvertierungen unter C





Frage

Wenn ich arithmetische Operationen mit zwei Variablen unterschiedlichen Typs durchführen möchte, dann wird die Variable kleineren Typs doch vor der Berechnung in ein größeren Typ automatisch umgewandelt, oder habe ich da was falsch Verstanden.

Antwort 1 von semi

Dies ist, glaube ich, abhängig von dem Typen der Variable, der ein Wert zugewiesen wird.
Ich würde mich nicht darauf verlassen, sondern explizit mit casts angeben, was ich erwarte.
Du schreibst "...dann wird die Variable kleineren Typs doch vor der Berechnung in ein größeren Typ automatisch umgewandelt"
Dies stimmt.
float * int = float
long * int = long
usw.
Solche Konvertierungen machen keine Probleme. Schlimmer wäre es umgekehrt, wenn z.B. Nachkommastellen in einem Zwischenergebnis nicht berücksichtigt werden.
Die meisten Compiler geben eine Warnungen aus, wenn so etwas vorkommt. Einige verlangen ausdrücklich einen Cast.
Folgendes sollte ohne casts nicht compilierbar sein:

float a = 1.1;
int b = a * 2; // falsch
int c = (int)(a*2); // besser

Gruss,
Michael

Antwort 2 von Dachdecker

Ich danke dir Michael.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: