Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: C (C89, C99 und C11) ::  Warum gibt fgetc einen int zurueck?     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
pille_01
Unregistrierter




Beitrag pille_01 Unregistrierter 14:06:27 21.05.2012   Titel:   Warum gibt fgetc einen int zurueck?            Zitieren

Hallo,

warum gibt fgetc einen int zurueck und nicht einen char? Ich habe gelesen, dass es so ist, weil in char kein eof repräsentieren kann. Aber gibt es dafuer nicht feof. Ansonsten short?


Danke! Gruß
Bashar
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.05.2001
Beiträge: 17749
Beitrag Bashar Mitglied 14:12:31 21.05.2012   Titel:   Re: Warum gibt fgetc einen int zurueck?            Zitieren

pille_01 schrieb:
Ich habe gelesen, dass es so ist, weil in char kein eof repräsentieren kann.

So ist es.

Zitat:
Aber gibt es dafuer nicht feof.

feof ist für echtes End-of-file, ferror gibts auch noch. Für beide gibt fgetc EOF zurück. Im Zweifel alles historische Gründe ...

Zitat:
Ansonsten short?

Wozu? int sollte der Ganzzahldatentyp sein, mit dem der Rechner am besten umgehen kann.

_________________
OSL♥
seldon
Unregistrierter




Beitrag seldon Unregistrierter 14:25:13 21.05.2012   Titel:              Zitieren

Solche Warum-Fragen sind letztendlich schwer zu beantworten. Warum ist es so? Weil es so im Standard steht. Warum steht es so im Standard? Weil es alle Welt vorher so gemacht hat und man die gängige Praxis festgeschrieben hat. Warum hat alle Welt es vorher so gemacht? Irgendjemand hat es zuerst so gemacht, und dann haben es alle anderen übernommen, damit Code, der für eine andere Plattform entwickelt wurde, auch auf ihrer Plattform kompilierbar ist. Warum hat irgendjemand es ursprünglich so gemacht? Da müsste man ihn schon finden und selbst fragen, aber die Vermutung liegt nahe, dass er EOF mit fgetc abhandeln wollte.

Es stellt sich ja auch die Frage, was fgetc andernfalls am Dateiende zurückgeben sollte.
pille_01
Unregistrierter




Beitrag pille_01 Unregistrierter 14:45:00 21.05.2012   Titel:   so            Zitieren

Ich versteh nicht warum man mehr Speicher reservieren sollte als nötig. Deshalb dachte ich an short.

Die "So ist es eben"-Antwort habe ich von meinem Prof schon erhalten. Hatte mich nur nicht so richtig zufrieden gestellt. Aber ich werde es wohl so akzeptieren müssen ;)

Trotzdem Danke für eure Zeit!
DirkB
Unregistrierter




Beitrag DirkB Unregistrierter 14:55:01 21.05.2012   Titel:   Re: so            Zitieren

pille_01 schrieb:
Ich versteh nicht warum man mehr Speicher reservieren sollte als nötig. Deshalb dachte ich an short.

Die Rückgabewerte einer Funktion werden meist in CPU-Register zurückgegeben. Da spielt das keine Rolle.
Und sonst hast du meist auch nur eine einzelne Variable in der du den Wert zwischenspeicherst.
Danach wird der Wert im String abgelegt.
Der String besteht ja weiterhin aus char und ist somit platzsparend.
seldon
Unregistrierter




Beitrag seldon Unregistrierter 15:08:35 21.05.2012   Titel:              Zitieren

Zwischen FILE-I/O und Locking dürfte der Rückgabetyp keine entscheidende Rolle mehr spielen. Wenn du optimieren willst, ist an anderer Stelle mehr zu holen.
c++.de :: C (C89, C99 und C11) ::  Warum gibt fgetc einen int zurueck?   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.