Konvertieren von Typen

05/12/2007 - 08:17 von Roland Schumacher | Report spam
Hallo NG

Ich bin gerade am lesen des Buches für die Prüfung 70-536. Thema
Konvertieren zwischen Typen.

Da gibt es eine Testaufgabe die mir ein Ràtzel aufgibt.

[...]
Int16 i16 = 1;
Int32 i32 = 1;
Double db = 1;

i16 = 132; //Wie so. Einschrànkend. Müsste Fehler sein.
i16 = db; //Klar (Fehler)

i32 = i16; //Klar
i32 = db; //Klar (Fehler)

db = i16; //Klar
db = i32; //Klar
[...]

Der Compiler (VS 2008) schmeist nur bei i16 = db und i32 = db einen Fehler.
Aber i16 = i32 müsste doch auch falsch sein (einschrànkend)? Oder?
Es gibt nàmlich eine Lernzielkontrolle mit genau dieser Frage. Dort ist die
Konvertierung i32 in i16 falsch.
Was stimmt nun? Compiler oder Buch?


Gruss
Roland Schumacher
http://blog.geniali.ch/
 

Lesen sie die antworten

#1 Rainer Queck
05/12/2007 - 09:38 | Warnen spam
Hallo Roland,

Der Compiler (VS 2008) schmeist nur bei i16 = db und i32 = db einen
Fehler.
Aber i16 = i32 müsste doch auch falsch sein (einschrànkend)? Oder?
Es gibt nàmlich eine Lernzielkontrolle mit genau dieser Frage. Dort ist
die
Konvertierung i32 in i16 falsch.
Was stimmt nun? Compiler oder Buch?


Da ein Compiler auch "nur" ein Programm ist, und es ab einer gewissen
Komplexitàt keine Fehlerfreien Programme gibt (das ist so")
solltest Du in einem solchen Fall weder Buch noch Kompiler glauben, sondern
selber überlegen, was die Folge von i16 = i32; ist.
Enthàlt i32 einen Größeren Wert als er mit i16 darstellbar ist, hast du ein
Problem! (der Eimer làuft über).
Übrigens, Compiler können überarbeitet werden, und dein Programm sollte dann
immer noch laufen, oder?

Gruß
Rainer


Gruss
Roland Schumacher
http://blog.geniali.ch/

Ähnliche fragen