Fachschaft Elektrotechnik
TU Wien

Offizielles
Service
Forum
Beispielupload
Beispielsammlung
Freizeit
Fotos
Links
Kontakt
FET-MitarbeiterInnen


Buddy Network


r1 - 13 Dec 2006 - 16:14:41 - GernotVormayrYou are here: FET >  Beispielsammlung  > ProgrammierTips

Tips für Programmieren 1 & 2

Hier ein paar Tips für Programmieren 1 und 2 (bzw. eigentlich alles wo man programmieren muss)

  • NUR das Programmieren was auch in der Angabe steht
    Also nicht ein schönes Menü etc basteln, wenn das nicht verlangt ist. Dafür geht kostbare Zeit verloren!
    Bei den meisten Übungen in Prog 1 und Prog 2 reicht es vollkommen einfach nur alle Funktionen von main aus zu testen.
  • Wenn der Compiler mehrer Fehlermeldungen wirft IMMER zuerst den ersten Fehler beheben und dann nochmal testen
    Oft verursachen Fehler nämlich Folgefehler.
  • Auch die Warnings beinhalten oft sinnvolle Meldungen
    Warnings zeigen z.b. falsche Argumente bei printf bzw. scanf oder dass man einen falschen Pointer übergibt.
  • Sollten bei einer Berechnung ein falsches Ergebnis herauskommen und man sieht den Fehler nicht, dann einfach Zwischenergebnisse auf dem Bildschirm ausgeben lassen
    printf smile
  • Bei unklaren oder nicht verstandenen Angaben nicht einfach herumprobieren sondern fragen!

Compilermeldungen und ihre Bedeutung

Hier eine Sammlung von Fehlermeldungen und ihre Bedeutung. Fehlermeldungen haben immer das Format:
...c:5: warning: format ?%lg? expects type ?double?, but argument 2 has type ?int?
DATEINAME:ZEILENNUMMER: warning bzw error: ....

Die ganze Ausgabe des Compilers befindet sich im Messages-Fenster (Knopf ganz unten im KDeveloper).

  • ...c:5: warning: format ?%lg? expects type ?double?, but argument 2 has type ?int?
    Bei einem printf oder scanf steht zwar im Formatstring %lg aber übergeben wurde ein integer (das kann mit allen möglichen Datentypen passieren)
  • ....c:6: warning: implicit declaration of function ?test?
    genau an dieser Stelle wurde die Funktion test() aufgerufen, sie wurde jedoch zuvor noch nie deklariert! Funktion z.b. in main aufgerufen, aber erst nach main deklariert?
  • ....c:7: warning: control reaches end of non-void function
    Dieses Warning heisst, dass man eine Funktion nicht als void deklariert hat (z.b. int foo() { ... }), jedoch in dieser Funktion nie ein return vorkommt bzw. nicht in allen Pfaden ein return vorkommt. (z.b. int foo(int a) {if(a==0) { return 1;}  } - falls a nicht 0 ist wird hier kein return ausgeführt)
  • /usr/bin/ld: Undefined symbols: _test
    Das heisst, dass der Linker die Funktion test nirgends finden kann. Passiert z.b. oft mit sqrt oder ähnlichem, dann wurde vergessen die Mathematikbibliothek dazuzulinken.
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions