Daniel Feist schrieb:
Hallo, Ich habe eine Frage zu dem Datentyp long in C: Hier eine kleine Zusammenfassung der 2 Datentypen.
Name Größe Wertebereich Formatzeichen int 2 Byte -32768 bis +32767 %d oder %i
long 4 Byte -2147483648 bis 2147483647 %ld oder %li
Wenn man eine Variable 'a' mit dem Datentyp long belegen will, muss man ja long int a; schreiben - warum geht nicht einfach nur long a;
Zitat aus K&R "Programmieren in C, zweite Ausgabe, ANSI C", S. 36: "In C gibt es nur wenige elementare Datentypen: [...] int ein ganzzahliger Wert, üblicherweise in der für die Maschine ,,natürlichen`` Größe. [...] Zusätzlich gibt es Varianten dieser elementaren Typen. short und long beziehen sich auf ganzzahlige Werte: short int sh; long int counter; In diesen Vereinbarungen kann das Wort int ausgelassen werden; normalerweise geschieht dies. [...]" Ich kann o. a. Buch nur jedem C-Programmierer ans Herz legen, damit werden alle Fragen zur C-Programmierung beantwortet. Desweiteren ist deine Annahme mit den Wertebereichen nicht korrekt; alle int-Werte haben maschinenabhängig unterschiedliche Größe; einzige Definition: short <= int <= long. Z. B. hat int unter Intel Linux & Windows 4 Bytes, lediglich unter MS DOS hat int 2 Bytes! long hat auf allen o. a. Systemen 4 Bytes, was aber nicht bedeutet, daß man damit rechnen sollte. Deshalb gibt es limits.h. Gruß Raimund