zurück zum News-Archiv
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

Anfang zurück vorwärts Ende Seitenanfang

Copyright und alle Rechte beim ATOS-Magazin. Nachdruck und Veröffentlichung von Inhalten nur mit schriftlicher Zustimmung der Redaktion.
Impressum - Rückmeldung via Mail oder Formular - Nachricht an webmaster