• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Xcode Debugger

insanity

Klarapfel
Registriert
06.07.06
Beiträge
277
Hi,
habe vor 1-2 Tagen damit angefangen mich mit C++ zu beschäftigen und arbeite dazu auch nen Tutorial durch. Als Editor benutze ich Xcode und das funktioniert auch ganz gut. Nun habe ich aber folgenden Code:
Code:
int main()
    {
      float f=3.14f;
      int falsch=f; // produziert warnung
      int pi=static_cast<int>(f); //besser
    }
Geht halt um's Casten von Variablen, im Tutorial steht nun das mir die erste Variante (int falsch...) einen Fehler produzieren müsste. Xcode kann aber keinen Fehler finden und liefert auch das gleiche Ergebniss wie die zweite Variante (int pi...). Ist das ein Fehler im Tutorial oder liegt's an meinen Einstellungen in Xcode? Ich konnte da aber nix finden. Ist jetzt auch nicht sooo wichtig, ich nutze halt Variante 2 aber ich würde ja schon wollen das mir der Debugger alle Fehler anzeigt.
Gruß Daniel
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Code:
int main()
    {
      float f=3.14f;
      int falsch=f; // produziert warnung
      int pi=static_cast<int>(f); //besser
    }
Geht halt um's Casten von Variablen, im Tutorial steht nun das mir die erste Variante (int falsch...) einen Fehler produzieren müsste. Xcode kann aber keinen Fehler finden
Wieso findet Xcode nichts? Du bekommst doch eine Warnung vom Compiler.

und liefert auch das gleiche Ergebniss wie die zweite Variante (int pi...).
Das ist auch nicht verwunderlich. Der Unterschied zwischen den beiden Varianten ist ja nur, dass bei der zweiten Variante der Compiler durch den Cast weiß, dass diese Zuweisung so gewollt ist, d.h. dem Programmierer ist bewusst, dass Information verloren geht.

Ist jetzt auch nicht sooo wichtig, ich nutze halt Variante 2 aber ich würde ja schon wollen das mir der Debugger alle Fehler anzeigt.
Das Problem wird Dir bereits vom Compiler gemeldet. Warnungen werden nicht ohne Grund vom Compiler ausgegeben. Man sollte sie immer erst einmal als einen Fehler betrachten. Du kannst Xcode auch sagen, dass Warnungen wie Fehler behandelt werden sollen, d.h. der Compiliervorgang abgebrochen wird.

MacApple
 

insanity

Klarapfel
Registriert
06.07.06
Beiträge
277
Danke für die schnelle Antwort, warum statis_cast zu bevorzugen ist hab ich verstanden. :)

Wieso findet Xcode nichts? Du bekommst doch eine Warnung vom Compiler.

Nein leider eben nicht. Der Kommentar im Code ist aus dem Tutorial. Deshalb schreib ich ja, im Tutorial steht der Debugger müsste einen Fehler/Warnung melden, tut er aber nicht. Er findet den Code gut so wie er ist und gibt auch bei beiden das passende Ergebniss aus (3).

Gruß Daniel
 

insanity

Klarapfel
Registriert
06.07.06
Beiträge
277
K danke schonmal, er bricht jetzt zwar das Compilieren ab, aber er sagt mir leider immernoch nicht warum, hmm, ich muss jetzt erstmal zur Spätschicht, danke jedenfalls schonmal für die schnellen Antworten. :)