Nach meinem Wissen, werden
float a = 3.5; // Kann nicht kompiliert werden
float b = 3.5f; // Das wird akzeptiert
// Beispiel mit Ganzzahl-Konstanten
byte c = 10; // Wird akzeptiert, obwohl '10' als int gesehen werden sollte
byte d = 128; // Das geht wieder nicht!!!
Es sieht danach aus, als ob Compiler (Achtung: Compiler) den Wert überprüfen würde und merkt, dass 10 noch in ein Byte passt, während 128 nicht mehr in ein Byte passt.
Wenn dies so ist, wieso merkt der Compiler nicht, dass 3.5 auch in ein 'float' passt? Mache ich hier einen Fehler in der Überlegung?
Danke.
- die Fliesskomma-Konstanten als "double" behandelt (ohne Sufix-Angabe), während
- Ganzzahlige Konstanten als "int" behandelt werden.
float a = 3.5; // Kann nicht kompiliert werden
float b = 3.5f; // Das wird akzeptiert
// Beispiel mit Ganzzahl-Konstanten
byte c = 10; // Wird akzeptiert, obwohl '10' als int gesehen werden sollte
byte d = 128; // Das geht wieder nicht!!!
Es sieht danach aus, als ob Compiler (Achtung: Compiler) den Wert überprüfen würde und merkt, dass 10 noch in ein Byte passt, während 128 nicht mehr in ein Byte passt.
Wenn dies so ist, wieso merkt der Compiler nicht, dass 3.5 auch in ein 'float' passt? Mache ich hier einen Fehler in der Überlegung?
Danke.