shutdown
Erfahrenes Mitglied
Hi!
Heute möchte ich euch mal meine zwei großen C-Mysterien präsentieren, die mir bisher bei meiner Programmiertätigkeit aufgetreten sind und bin gespannt, ob irgendjemand eine einleuchtende Lösung parat hat.
Mysterium Nr.1: printf bei Dateioperationen
Wenn ich mit Dateien als Input/Output für meine C-Routinen arbeite, muss ich immer gleichzeitig eine Ausgabe auf der Konsole erzeugen. Tue ich das nicht, bricht er mir nach 2 Sekunden ab. Dieses Problem tritt bei mir sowohl unter Linux als auch unter Windows auf.
Es kann doch nicht sein, dass durch das Weglassen der Konsolen-Ausgabe, das Programm so schnell wird, dass die Datei-Operationen nicht mehr hinterherkommen, oder?
Mysterium Nr. 2: Zählen bis zur 16.777.216
Wenn ich in einer for-Schleife eine float-Variable hochzähle, dann komme ich genau bis zur 16.777.216 und dann hängt er sich in eine Endlosschleife. Float ist aber zu wesentlich größeren Zahlenbereichen fähig als nur bis 10^8.
Lasse ich die for-Schleife erst bei 16.777.217 einsetzen, zählt er völlig normal weiter.
Dieses Problem tritt wiederum unter Linux genauso wie unter Windows auf.
Ich weiß, dass die Zahl 16.777.216 unter Linux problembehaftet ist ( = 2^24), allerdings geht es meines Wissens dabei um Dinge, wie maximale Dateigrößen (die außerdem schon gar nicht mehr aktuell sind)
Also ich bin gespannt was ihr so meint!
cu shutdown
Heute möchte ich euch mal meine zwei großen C-Mysterien präsentieren, die mir bisher bei meiner Programmiertätigkeit aufgetreten sind und bin gespannt, ob irgendjemand eine einleuchtende Lösung parat hat.
Mysterium Nr.1: printf bei Dateioperationen
Wenn ich mit Dateien als Input/Output für meine C-Routinen arbeite, muss ich immer gleichzeitig eine Ausgabe auf der Konsole erzeugen. Tue ich das nicht, bricht er mir nach 2 Sekunden ab. Dieses Problem tritt bei mir sowohl unter Linux als auch unter Windows auf.
Es kann doch nicht sein, dass durch das Weglassen der Konsolen-Ausgabe, das Programm so schnell wird, dass die Datei-Operationen nicht mehr hinterherkommen, oder?
Mysterium Nr. 2: Zählen bis zur 16.777.216
Wenn ich in einer for-Schleife eine float-Variable hochzähle, dann komme ich genau bis zur 16.777.216 und dann hängt er sich in eine Endlosschleife. Float ist aber zu wesentlich größeren Zahlenbereichen fähig als nur bis 10^8.
Lasse ich die for-Schleife erst bei 16.777.217 einsetzen, zählt er völlig normal weiter.
Dieses Problem tritt wiederum unter Linux genauso wie unter Windows auf.
Ich weiß, dass die Zahl 16.777.216 unter Linux problembehaftet ist ( = 2^24), allerdings geht es meines Wissens dabei um Dinge, wie maximale Dateigrößen (die außerdem schon gar nicht mehr aktuell sind)
Also ich bin gespannt was ihr so meint!

cu shutdown
Zuletzt bearbeitet: