Anfang zurück vorwärts Ende
ANSI C - Ein Programmierkurs - Teil XII
math.h
In math.h sind mathematische Funktionen definiert.
- double fabs( double x );
- Diese Funktion liefert den Absolutbetrag.
- double ceil( double x );
- Diese Funktion rundet auf den nächsten ganzzahligen Wert auf.
- double floor( double x );
- Diese Funktion rundet auf den nächsten ganzzahligen Wert ab.
- double fmod( double x, double y );
- Diese Funktion liefert den Rest, wenn x durch y geteilt wird.
- double exp( double x );
- Diese Funktion liefert e hoch x.
- double log( double x );
- Diese Funktion liefert den natürlichen Logarithmus von x.
- double log10( double x );
- Diese Funktion liefert den Logarithmus zur Basis 10 von x.
- double frexp( double x, int *exp);
- Diese Funktion zerlegt x in eine normalisierte Mantisse im Bereich von
1/2 .. 1, die als Ergebnis geliefert wird und eine Potenz von 2, die in
exp geschrieben wird.
- double ldexp( double x, int n );
- Diese Funktion liefert x * (2 hoch n).
- double pow( double x, double y );
- Diese Funktion liefert x hoch y.
- double sqrt( double x );
- Diese Funktion liefert die Wurzel von x.
- double cos( double x );
- Diese Funktion liefert den Cosinus von x.
- double sin( double x );
- Diese Funktion liefert den Sinus von x.
- double tan( double x );
- Diese Funktion liefert Tangens von x.
- double acos( double x );
- Diese Funktion ist die Umkehrfunktion zu cos.
- double asin( double x );
- Diese Funktion ist die Umkehrfunktion zu sin.
- double atan( double x );
- Diese Funktion ist die Umkehrfunktion zu tan.
- double atan2( double x, double y );
- Diese Funktion liefert den arctan von y/x.
- double cosh( double x );
- Diese Funktion liefert den Cosinus Hyperbolicus von x.
- double sinh( double x );
- Diese Funktion liefert den Sinus Hyperbolicus von x.
- double tanh( double x );
- Diese Funktion liefert Tangens Hyperbolicus von x.
- double acosh( double x );
- Diese Funktion ist die Umkehrfunktion zu cosh.
- double asinh( double x );
- Diese Funktion ist die Umkehrfunktion zu sinh.
- double atanh( double x );
- Diese Funktion ist die Umkehrfunktion zu tanh.
stdlib.h
In stdlib.h sind diverse Funktionen definiert, die sich nicht in die
anderen Bibliotheken einordnen lassen.
- double atof( const char *str );
- Diese Funktion wandelt einen String in einen double um.
- int atoi( const char *str );
- Diese Funktion wandelt einen String in einen int um.
- long atol( const char *str );
- Diese Funktion wandelt einen String in einen long um.
- void *malloc( size_t size );
- Diese Funktion liefert einen Zeiger auf einen Speicherblock der Größe
size. Wenn der Speicher nicht mehr benötigt wird, muss er mit free wieder
freigegeben werden.
- void *calloc( size_t elt_count, size_t elt_size );
- Diese Funktion liefert einen Speicherblock für elt_count Elemente der
Größe elt_size. Der Speicher wird von calloc mit 0 initialisiert.
- void free( void *ptr );
- Diese Funktion gibt den Speicher, der mit malloc, calloc oder realloc
angefordert wurde, wieder an die Speicherverwaltung zurück.
- void *realloc( void *ptr, size_t size );
- Diese Funktion ändert die Größe des Speicherbereichs ptr auf size. Der
bisherige Inhalt von ptr bleibt erhalten.
- int abs( int x );
- Diese Funktion liefert den Absolutbetrag von x als int, schneidet also
das Vorzeichen ab.
- long labs( long x );
- Diese Funktion liefert den Absolutbetrag von x als int.
- div_t div( int n, int d );
- Diese Funktion teilt n durch d und liefert das Ergebnis in der Struktur
vom Typ div_t, die das ganzzahlige Ergebnis und den Rest enthält.
- ldiv_t ldiv( long n, long d );
- Diese Funktion arbeitet wie div, aber mit long- statt int-Werten.
- int rand( void );
- Diese Funktion liefert eine ganzzahlige Pseudo-Zufallszahl zwischen 0
und RAND_MAX.
- void srand( unsigned int seed );
- Diese Funktion setzt seed als neuen Startwert für eine neue
Zufallszahlenfolge.
- double strtod( const char *s, char **endptr );
- Diese Funktion wandelt einen String in einen double um. Für endptr kann
die Adresse eines Pointers übergeben werden. Dieser Pointer wird dann
auf das erste Zeichen aus s gesetzt, das nicht mehr für die Konvertierung
benutzt wird. Wird für endptr NULL übergeben, ist die Funktion äquivalent
zu atod.
- long strtol( const char *s, char **endptr, int base );
- Diese Funktion arbeitet wie strtod, liefert aber einen long und in base
wird die Basis des verwendeten Zahlensystems übergeben. Hat base den
Wert 0, wird versucht, die Umwandlung für die Basis 8, 10 oder 16
durchzuführen. In diesem Fall zeigt eine führende Null das Oktalsystem
und ein führendes 0x oder 0X das Hexadezimalsystem an.
- unsigned long strtoul( const char *s, char **endptr, int base );
- Diese Funktion arbeitet wie strtoul, liefert aber einen unsigned long.
- int system( const char *command );
- Diese Funktion übergibt den String command an das System zur Ausführung.
Sowohl der Aufbau des Kommandos als auch das Ergebnis sind von dem
verwendeten System und dem Kommandointerpreter abhängig und damit nicht
portabel!
- void exit( int status );
- Diese Funktion beendet das Programm normal mit dem Returnwert status.
Es werden auch die mit atexit gesetzten Funktionen aufgerufen. Um den
Programmlauf übersichtlich zu halten, sollte ein Programm allerdings
möglichst mit dem Ende von main terminieren.
- void abort( void );
- Diese Funktion sorgt für eine anormale Beendigung des Programms.
- int atexit( void (*func)( void ) );
- Diese Funktion setzt eine Funktion, die bei Beendigung des Programms
aufgerufen wird. Konnte die Funktion nicht gesetzt werden, wird ein
Wert ungleich Null zurück geliefert. Wenn ein Programm immer mit dem
Ende von main terminiert, kann auch dort eine solche Aufräumfunktion
aufgerufen werden.
- char *getenv( const char *name );
- Diese Funktion liefert den Wert der Umgebungs- bzw. Environmentvariable
name. Eine sehr bekannte Umgebungsvariable ist z.B. PATH.
- void *bsearch( const void *key, const void *base, size_t nmemb, size_t size, int (*compar)() );
- Diese Funktion sucht in dem Feld base nach dem Eintrag key. Der Parameter
nmemb gibt an, wieviel Einträge das Feld enthält und size die Größe von
jedem Element. Das Feld muss aufsteigend sortiert sein und der Vergleich
wird mit der Funktion compar durchgeführt. Diese Funktion bekommt zwei
Zeiger auf Elemente und muss einen Wert kleiner 0 liefern, wenn der
erste Parameter kleiner ist, 0 für Gleichheit und größer 0, wenn der
zweite Parameter kleiner ist.
- void qsort( void *base, size_t nmemb, size_t size, int (*compar)() );
- Diese Funktion sortiert das Feld base in aufsteigender Reihenfolge. Das
Feld enthält nmemb Elemente der Größe size. Der Vergleich wird von der
Funktion compar durchgeführt, für die das Gleiche gilt wie unter bsearch
beschrieben.
Der nächste Abschnitt befasst sich mit der Include-Datei assert.h, die Hilfen für die Fehlersuche bereitstellt.
Michael Bernstein |