Hilfe bei C
-
Aus dem C-Standard:
(C99, 6.7.8p4) "All the expressions in an initializer for an object that has static storage duration shall be constant expressions or string literals."
Der Grund dafür ist, dass Variabeln mit static storage duration vor Programmstart initialisiert werden.
-
Danke für die schnelle Antwort
wenn ich es so schreibe wie du bekomme ich plötzlich negative zahlen woran kann das liegen?
Und warum ist void main() so schlimm?
Bekomme ja keinen Rückgabewert bzw. will keinen
-
Funktioniert so nur bekomme ich negative Zahlen woran kann das liegen?
Und so wie ich das Programm geschrieben habe funktioniert es in visual c++ aber nicht in Codeblocks woran kann das liegen am Compiler?
-
icarus2 schrieb:
Aus dem C-Standard:
(C99, 6.7.8p4) "All the expressions in an initializer for an object that has static storage duration shall be constant expressions or string literals."
Der Grund dafür ist, dass Variabeln mit static storage duration vor Programmstart initialisiert werden.
Und was kann man dagegen tun?
-
Dr Cunthunt schrieb:
wenn ich es so schreibe wie du bekomme ich plötzlich negative zahlen woran kann das liegen?
Dr Cunthunt schrieb:
Und warum ist void main() so schlimm?
Weil der C Standard
int
als Rückgabewert vonmain
verlangt undvoid
somit falsch ist.
-
Dr Cunthunt schrieb:
icarus2 schrieb:
Aus dem C-Standard:
(C99, 6.7.8p4) "All the expressions in an initializer for an object that has static storage duration shall be constant expressions or string literals."
Der Grund dafür ist, dass Variabeln mit static storage duration vor Programmstart initialisiert werden.
Und was kann man dagegen tun?
Dagegen kann man nichts tun, das ist einfach so. Der C Standard gibt das so vor.
-
Dr Cunthunt schrieb:
Und warum ist void main() so schlimm?
Bekomme ja keinen Rückgabewert bzw. will keinenIst nicht schlimm. Dein Compiler ist so nettm auch void main() zu vertragen, obwohl es nicht im Standard erlaubt ist.
Nu, das hat aber den Nachteil, daß ich das Programm nicht so einfach mal bei mir reinkopieren und testen kann. Hab nämlich alle Warnungen angemacht UND noch gesagt, Warnungen sollen als Fehler behandelt werden.
So musste ich das Prog erst umbauen. Ich musste auch die <conio.h> und getch() wegmachen, erst dann kam ich an die eigentliche Fehlermeldung.
Das nervt natürlich und senkt die Bereitschaft, Dein Programm mal schnell auszuprobieren. Also in Foren solltest Du Standard-Code posten, dann können viel mehr Leute schnell helfen.
-
icarus2 schrieb:
Dr Cunthunt schrieb:
wenn ich es so schreibe wie du bekomme ich plötzlich negative zahlen woran kann das liegen?
Dr Cunthunt schrieb:
Und warum ist void main() so schlimm?
Weil der C Standard
int
als Rückgabewert vonmain
verlangt undvoid
somit falsch ist.Danke für die Hilfe
Habs mit void in der ersten Klasse gelernt und besser int immer aus Macht der Gewohnheit wieder etwas dazugelernt
-
volkard schrieb:
Dr Cunthunt schrieb:
Und warum ist void main() so schlimm?
Bekomme ja keinen Rückgabewert bzw. will keinenIst nicht schlimm. Dein Compiler ist so nettm auch void main() zu vertragen, obwohl es nicht im Standard erlaubt ist.
Nu, das hat aber den Nachteil, daß ich das Programm nicht so einfach mal bei mir reinkopieren und testen kann. Hab nämlich alle Warnungen angemacht UND noch gesagt, Warnungen sollen als Fehler behandelt werden.
So musste ich das Prog erst umbauen. Ich musste auch die <conio.h> und getch() wegmachen, erst dann kam ich an die eigentliche Fehlermeldung.
Das nervt natürlich und senkt die Bereitschaft, Dein Programm mal schnell auszuprobieren. Also in Foren solltest Du Standard-Code posten, dann können viel mehr Leute schnell helfen.Ist erst der erste Versuch Hilfe aus einem Forum zu beanspruchen ich werds mir merken
Danke jedenfalls
-
Dr Cunthunt schrieb:
wenn ich es so schreibe wie du bekomme ich plötzlich negative zahlen woran kann das liegen?
Falscher Formatspecifier bei
printf