Inhalt des Kurses zurück weiter

C Kurs Tag 3: Die Datentypen Teil 1

Heute wollen wir die Basis-Typen in C mal genauer betrachten. Beim letzten Mal haben wir den typ =void= kennengelernt. Er steht für NICHTS, kein Wert und kein Parameter.

Der Typ =int= steht für eine ganze Zahl, die maximale Größe ist rechnerspezifisch, aber immer größer gleich 32767. Dieser Typ steht also immer für eine rechnerspezifische ganze Zahl. Es gibt Zwei Arten von ganzen Zahlen, die vorzeichenbehafteten =signed= und die Vorzeichenlosen Zahlen =unsigned=. Der Typ int (und andere) sind ohne Zusatz immer mit Vorzeichen zu interpretieren. =int= ist das gleiche wie =signed int=.Der Typ =unsigned int= kann nur positive ganze Zahlen darstellen.

Für die ganzen Zahlen gibt es folgende Möglichkeiten:

Typ Minimum Maximum
signed char -128 127
unsigned char 0 255
signed short -32768 32767
unsigned short 0 65535
signed int <= -32768 >= 32767
unsigned int 0 >= 65535
signed long -2147483648 2147483647
unsigned long 0 4294967295

Diese Grenzen sollte man in der Datei 'LIMITS.H' wiederfinden. Wenn man nun eine Konstante benutzen will muß dem Compiler gesagt werden um welchen Typ es sich handelt. Die Zahl 65000 zum Beispiel ist zu groß für (mein) =int=. Diese Zahl kann

Nun ist man aber nicht auf die dezimalen Konstanten festgelegt. man kann sie auch in anderen Zahlensystemen schreiben:

dez hex oktal (Basis 8)
64738L 0xFCE2L 0176342L

Aufgepaßt: Jede ganzzahlige Konstante die mit 0 begint, ist eine oktale Konstante!! Führende Nullen bei ganzzahligen Konstanten vermeiden.

Heute wollen wir ein Programm schreiben, das einen Wert an das Betiebsystem zurückgibt. Dazu fehlt uns eine spezielle Anweisung. Die $return_anweisung$ beendet die Ausführung der Funktion. Da der Wert einer Funktion zu diesem Zeitpunkt festgelegt sein muß, ist eine $return_anweisung$ nach folgendem Schema aufgebaut:

return $Ausdruck$ ;

Das Semikolon beendet in C jede Anweisung. Als Ausdruck kann eine Konstante oder eine Variable stehen. nun aber das Programm:

Download der Datei "anzahl1.c"


/*

ANZAHL.C

26.12.91

*/

int main ( int anzahl_der_argumente )

{

/* Hier ist fast nichts los! */

return anzahl_der_argumente ;

}


Probiert es mit einer Shell (CLI, COMMAND.COM, MUPFEL, oder sonstwie) aus:

>ANZAHL

>ANZAHL ARGUMENT

>ANZAHL WAS IST HIER LOS

Die Ausgabe des Rückgabewertes ist abhängig vom Betriebssystem.

Unter Unix erhält man diese Information z.B. mit: echo $?