Forum: Compiler & IDEs Warnings???


von bluemole (Gast)


Angehängte Dateien:

Lesenswert?

So nochmal ich...

Ich hab' da ein paar Warnings die ich einfach nicht wegbekomme und die
mich langsam nerven.
Kann mir mal jemand einen Tipp geben und Klarheit verschaffen. Die
blödeste Warning ist:
no new line at end of file (file == assembler file)
das Ende sieht so aus:

.endfunc

Die anderen drei hab' ich mal als Anhang beigelegt...

Merci...

von Jörg Wunsch (Gast)


Lesenswert?

Laut C-Standard ist eine Quelldatei aus Zeilen aufgebaut.  Jede Zeile
endet dabei mit einer Zeilenendekennung (Newline unter Unix, CR-LF
unter DOS).  Da die Datei nur ganze Zeilen haben kann, muß als letztes
in der Datei folglich immer eine Zeilenendekennung stehen.

Die Zeilenorientierung mag auf den ersten Blick verwundern, da C ja
eigentlich white space ignoriert und eine weitgehend formatfreie
Sprache ist.  Wenn Du Dir aber mal den Präprozessor genauer ansiehst
wirst Du feststellen, daß der in Zeilen ,,denkt''.  Schreibst Du
nämlich irgendwo

#define foo bar baz bam bum

dann wird später bei jedem Auftreten von "foo" der Rest der Zeile
(abzüglich des white space zwischen "foo" und dem ersten nichtleeren
Zeichen des Zeilenrestes) substituiert.

Auch wenn es sich bei Deiner Datei um eine Assemblerdatei handelt, Du
hast sicher eine solche, die noch durch den Präprozessor geschickt
wird, um #include, #define usw. zu bearbeiten.  Damit unterliegt sie
den C-Regeln.

Manche Windows-Editoren scheinen eine gewisse Tendenz zu haben, am
Ende der Datei nicht freiwillig eine Zeilenendekennung einzufügen.
Abhilfe: explizit noch einen Zeilenwechsel eintippen.  (Einer mehr
schadet nicht. ;-)

Die anderen Warnungen stammen aus der COFF-Konvertierung und hängen im
Wesentlichen damit zusammen, daß Du nicht alle wünschenswerten
Debug-Symbole händisch in Deinen Assemblercode eingebaut hast.  Die
sind aber allesamt belanglos.

von bluemole (Gast)


Lesenswert?

> Abhilfe: explizit noch einen Zeilenwechsel eintippen.

ääähhh, wie ????

von Jörg Wunsch (Gast)


Lesenswert?

Du gehst ans Ende Deiner Datei im Editor und drückst einmal auf die
Enter-Taste.

Gegentest: öffne ein Terminalfenster und schreibe "type
<dateiname>".
Wenn Du vor dem nächsten Prompt eine Leerzeile siehst, dann hatte die
Datei ein Newline am Ende.  Wenn die letzte Zeile direkt vor dem
Prompt
endet, war keins dran.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.