Warning: no new line at end of file
-
"Warning: no new line at end of file"
was hat es eigentlich mit dieser Warnung auf sich? muss ein C Programm am Ende einen new line Zeichen aufweisen, oder ist das eine Eigenart vom gcc?
-
Vertexwahn schrieb:
muss ein C Programm am Ende einen new line Zeichen aufweisen, oder ist das eine Eigenart vom gcc?
Ja. Nein.
Wie auch ein kurzes Googlen ergeben hätte.Der C-Standard schreibt eben vor, dass jede Datei mit einem Newline aufhört. Heutige Compiler kommen auch damit klar, wenn das fehlt, aber der gcc gibt korrekterweise eine Warnung, dass das nicht Standard-C entspricht.
-
Ja. Nein.
ist das bei C++ genau so?
(so was bekommt man gar nicht mit, wenn man immer nur mit ms compiler arbeitet ;))
-
der gcc is sowieso dumm.
Kompiliert ein Programm, bei dem man einer const-Variablen den Wert im nachhinein
ändert, aber meckert über eine fehlende neue Zeile...tstssts
-
anonymus schrieb:
der gcc is sowieso dumm.
Kompiliert ein Programm, bei dem man einer const-Variablen den Wert im nachhinein
ändert, aber meckert über eine fehlende neue Zeile...den code will ich sehen.
-
mit dem gcc sind mir auch schon lustige sachen passiert:
#include <stdio.h> int main(void) { unsigned int a = 3; unsigned int b = 100; unsigned int c = a - b; printf("%d\n", c); }
bei mir kommt die Ausgabe -97
- anscheinend macht der GCC aus dem unsigned Datentyp einen signed...
-
Vertexwahn schrieb:
unsigned int c = a - b; printf("%d\n", c);
bei mir kommt die Ausgabe -97
- anscheinend macht der GCC aus dem unsigned Datentyp einen signed...
Nein, das machst Du, weil Du ein kaputtes Programm geschrieben hast. Unsigned wird nicht mit "%d" ausgegeben; schau dir mal an, wie variable Parameterleisten funktionieren, dann wirst Du das verstehen.
-
Shade Of Mine schrieb:
anonymus schrieb:
der gcc is sowieso dumm.
Kompiliert ein Programm, bei dem man einer const-Variablen den Wert im nachhinein
ändert, aber meckert über eine fehlende neue Zeile...den code will ich sehen.
bitte schön:
#include <stdio.h> int main() { const float Pi = 3.14; Pi = 5.0; printf("%f",Pi); return 0; }
zumindest unter windows spuckt der gcc lediglich eine Warnung "test.c:7: warning: assignment of read-only variable `Pi'" aus.
aber compilieren tut ers und das printf gibt dann auch 5.0 aus
-
anonymus schrieb:
zumindest unter windows spuckt der gcc lediglich eine Warnung "test.c:7: warning: assignment of read-only variable `Pi'" aus.
aber compilieren tut ers und das printf gibt dann auch 5.0 aus
Dann bring deinen Compiler mal auf den neuesten Stand; seit gcc 3.<irgendwas> ist das im Normalfall ein error. Da aber gcc eigentlich ziemlich weit durchkonfigurierbar ist, kannst Du das auch als Fehler handhaben lassen, wenn Du nur möchtest. Ohne Compilerschalter ist der gcc in der Tat ziemlich weit vom Standard entfernt. Allerdings ist so ein Vergleich reichlich sinnlos, weil er auch recht klaglos konformes C++ übersetzt.