Sprachkonzepte
Preprozessor
Operatoren
Kontrollstrukturen
Typen
OOP
Bibliotheken
|
Bibliotheken
Dieser Teil von ManderC ist noch in Bearbeitung. Vorerst muss man sich mit einer rudimentären Auflistung begnügen. Man beachte dass diese Einträge während der frühen Programmier-Jahre des Autors entstanden und (momentan noch) teilweise unkorrekt sein können.
assert.h
Mittels assert kann eine Bedingung überprüft werden. Ist die Bedingung FALSE, so wird das Programm mit entsprechender Fehlermeldung abgebrochen.
void assert(int Bedingung) | Sicherstellung der Bedingung |
ctype.h
Diese Funktionen geben true oder false zurück, je nachdem, ob das übergebene Ascii-Zeichen den Kriterien entspricht.
int isalnum(int Asc) | Alphanumerische Zeichen |
int isalpha(int Asc) | Buchstaben a bis z und A bis Z |
int iscntrl(int Asc) | Steuerzeichen 0x00 bis 0x1F und 0x7F |
int isdigit(int Asc) | Ziffern 0 bis 9 |
int isgraph(int Asc) | Druckbare Zeichen (keine Leerzeichen) |
int islower(int Asc) | Kleinbuchstaben a bis z |
int isprint(int Asc) | Druckbare Zeichen 0x20 bis 0x7E |
int ispunct(int Asc) | Interpunktionszeichen |
int isspace(int Asc) | weisse Leerzeichen (0x09 bis 0x0D und 0x20) |
int isupper(int Asc) | Grossbuchstaben A bis Z |
int isxdigit(int Asc) | hexadezimale Ziffern 0 bis 9 und A bis F |
Diese beiden Funktionen wandeln Buchstaben in ihr klein- bzw. gross-Pendant um.
int tolower(int Asc) | Umwandlung in Kleinbuchstaben |
int toupper(int Asc) | Umwandlung in Grossbuchstaben |
locale.h
Diese beiden Funktionen dienen der Anpassung der länderspezifischen Einstellungen. Sie werden hier nicht weiter erläutert.
struct lconv* localeconv(void) |
char *setlocale(int, const char*) |
math.h
double sin(double ang) | Sinus |
double cos(double ang) | Cosinus |
double tan(double ang) | Tangens |
double asin(double val) | Arcussinus |
double acos(double val) | Arcuscosinus |
double atan(double val) | Arcustangens |
double atan2(double x, double y) | Arcustangens von x/y |
double sinh(double ang) | Sinus Hyperbolicus |
double cosh(double ang) | Cosinus Hyperbolicus |
double tanh(double ang) | Tangens Hyperbolicus |
Winkel werden stets in rad angegeben.
double sqrt(double val) | Quadratwurzel |
double pow(double bas, double exp) | Power, Potenzierung: bas^exp |
double exp(double val) | Exponent |
double ldexp(double val, int exp) | val*2^exp |
double fabs(double val) | Betrag, Absolutwert |
double ceil(double val) | Aufrunden |
double floor(double val) | Abrunden |
double fmod(double x, double y) | x modulo y |
double log(double val) | log Basis e |
double log10(double val) | log Basis 10 |
double frexp(double val, int* exp) | Mantisse und Exponent |
double modf(double v1, double* v2) | Ganzzahl und Dezimalbruch |
Die Funktionen frexp und modf geben je zwei Werte zurück, wobei der zweite mittels Übergabe durch Pointer zurückgegeben wird.
setjmp.h
Diese beiden Funktionen dienen der Zwischenspeicherung vom Programmstatus. Sie werden hier nicht weiter erläutert.
void longjmp(jmp_buf, int) |
int setjmp(jmp_buf) |
signal.h
Diese beiden Funktionen dienen der manuellen Interruptkontrolle. Sie werden hier nicht weiter erläutert.
int raise(int) |
void signal(int, void*(int))(int) |
stdarg.h
Diese drei Makros dienen der variablen Übergabe von Parametern. Sie werden hier nicht weiter erläutert.
va_arg(va_list) |
va_end(va_list) |
va_start(va_list) |
stdio.h
Diese Bibliothek enthält alle Funktionen, die für die Ein- und Ausgabe zuständig sind. Fast alle bedienen sich dabei sogenannter Streams. Streams sind allgemein definiert als ein aktiviertes lineares Interface zwischen Programm und Hardware. Häufigste Anwendung ist dabei eine Datei, weshalb der Typ auch FILE* heisst. Die folgenden Funktionen sind unter anderem speziell für Dateien gemacht:
void clearer(FILE* stream) | Flags zurücksetzen |
int fclose(FILE* stream) | Stream schliessen |
int feof(FILE* stream) | gibt 0 zurück, wenn Dateiende noch nicht erreicht |
int ferror(FILE* stream) | gibt 0 zurück, wenn alles in Ordnung ist |
int fflush(FILE* stream) | Puffer leeren |
int fgetc(FILE* stream) | ein Zeichen lesen |
int fgetpos(FILE* stream, fpos_t* pos) | pos enthält die Position im Stream |
char* fgets(char* str, int i, FILE* stream) | Liest String bis \n aber maximal i-1 Zeichen |
FILE* fopen(const char* Name, const char* modus) | Öffnet einen Stream im angegebenen Modus |
int fprintf(FILE* stream, const char* format, ...) | In einen Stream werden formtierte Daten ausgegeben |
int fputc(int zeichen, FILE* stream) | Ein Zeichen schreiben |
int fputs(const char* str, FILE* stream) | String schreiben |
size_t fread(void* Puffer, size_t Grösse, size_t Anz, FILE* stream) | liest maximal 64 KB in den Puffer |
FILE* freopen(const char* Name, const char* modus, FILE* stream) | ordnet Stream einer anderen Datei zu |
int fscanf(FILE* stream, const char* format, ...) | liest formatierte Daten ein |
int fsetpos(FILE* stream, const fpos_t* pos) | Setzt den Dateipointer auf eine absolute Position |
long ftell(FILE* stream) | gibt den Positionspointer zurück |
size_t fwrite(const void* Puffer, size_t Grösse, size_t Anz, FILE* stream) | schreibt maximal 64 KB in den Puffer |
int remove(const char* Datei) | Datei wird gelöscht |
int rename(const char* Datei1, const char* Datei2) | Umbenennen der Datei |
void rewind(FILE* stream) | Zurücksetzen der Flags und zurück zum Dateianfang |
FILE* tmpfile(void) | Temporäre Datei erstellen |
char* tmpnam(char* str) | Benannte temporäre Datei erstellen |
Die folgenden Funktionen sind speziell für die Eingabe über Tastatur (stdin) und die Ausgabe über Bildschirm (stdout) gedacht:
int getc(FILE* stream) | liest ein Zeichen |
int getchar(void) | liest ein Zeichen aus stdin |
char* gets(char* str) | liest eine Zeichenkette aus stdin |
void perror(const char* str) | gibt eine Fehlermeldung mit str aus |
int printf(const char* str, ...) | gibt den formatierten String aus |
int putc(int asc, FILE* stream) | gibt ein Zeichen aus |
int putchar(int asc) | gibt ein Zeichen auf stdout aus |
int puts(const char* str) | gibt den String auf stdout aus |
int scanf(const char* str, ...) | Liest einen formatierten String von stdin |
Die folgenden Funktionen sind zuständig für allgemeine Puffer- und Stream-Anweisungen, sie werden normalerweise erst bei manueller Dateiansteuerung benutzt.
void setbuf(FILE* stream, char* Puffer) | Weist dem stream einen Puffer zu |
int setvbuf(FILE* stream, char* modus, int, size_t Grösse) | Weist dem stream die Art des Puffers zu |
int sprintf(char* Puffer, const char* str, ...) | Formatierte Ausgabe des Strings in den Puffer |
int sscanf(const char* Puffer, const char* str, ...) | formatiertes Herauslesen aus dem Puffer |
int ungetc(int asc, FILE* stream) | Fehlerhalber gelesenes Zeichen wird wieder zurückgeschrieben zu |
int vfprintf(FILE* stream, const char* format, va_list list) | formatierte Ausgabe in einen Stream |
int vprintf(const char* str, va_list list) | formatierte Ausgabe an strout |
int vsprintf(char* Puffer, const char* str, va_list list) | formatierte Ausgabe mittels String-Zwischenspeicherung |
stdlib.h
Stdlib enthält verschiedenste Funktionen. Zum einen gehören dazu folgende Programm-Steuer-Funktionen:
void abort(void) | Abbruch |
int atexit(void* (fn)(void)) | Beenden-Funktion wird festgesetzt |
void exit(int status) | Programmende |
char* getenv(const char* name) | Umbegungsvariable wird gesucht |
int system(const char* Befehl) | Programm wird für Befehl unterbrochen |
Einfache mathematische Funktionen:
int abs(int val) | Betrag |
long labs(long val) | Betrag von longint |
div_tdiv(int x, int y) | Berechnung von x div y und x mod y |
ldiv_t ldiv(long x, long y) | Gleich wie div, aber mit long |
int rand(void) | Zufallszahl |
void srand(unsigned int start) | Festlegen der Generator-Basis |
Einige Umwandlungsfunktionen:
double atof(const char* str) | Umwandlung von String in float |
int atoi(const char* str) | Umwandlung von String in integer |
long atol(const char* str) | Umwandlung von String in long |
double strtod(const char* str, char** ende) | Umwandlung von string in double |
long strtol(const char* str, char** ende, int basis) | Umwandlung von string in long |
unsigned long strtoul(const char* str, char** ende, int basis) | Umwandlung von string in unsigned long |
Funktionen für Multibyte:
int mblen(const char* multibyte, size_t Anz) | Ermitteln der Länge |
size_t mbstowcs(wchar_t*, const char*, size_t) | Umwandlung von String in wchar_t |
size_t mbtowc(wchar_t*, const char*, size_t) | Umwandlung eines Zeichens in wchar_t |
size_t wcstombs(char*, const wchar_t*, size_t) | Umwandlung in Multibyte |
size_t wctomb(char, wchar_t) | Umwandlung in Multibyte |
Speicher-Funktionen:
void* calloc(size_t Anz, size_t Groesse) | Reservation und 0-Initialisierung von Anz*Grösse Bytes, maximal 64 KB |
void free(void* block) | Freigabe des Speicherblocks |
void* malloc(size_t Groesse) | Reservation von Groesse Bytes |
void* realloc(void* block, size_t Groesse) | Grössenänderung des Speicherblockes |
Und zwei gängige Such- und Sortier-Algorithmen:
void* bsearch(const void*, const void* size_t, size_t, int*(const void*, const void*)) | Binäre Suche |
void qsort(void*, size_t, size_t, int*(const void*, const void*)) | Quicksort |
string.h
String-Funktionen:
char* strcat(char*, const char*) | Strings aneinanderhängen |
char* strchr(const char*, int) | String durchsuchen nach Zeichen |
int strcmp(const char*, const char*) | Strings vergleichen |
char* strcpy(char*, const char*) | String kopieren |
size_t strcspn(const char*, const char*) | Vergleich und Länge des fehlenden Stücks |
char* strerror(int) | Fehlermeldung |
size_t strlen(const char*) | Länge des Strings |
char* strncat(char*, const char*, size_t) | Zeichen anhängen |
int strncpm(const char*, const char*, size_t) | Vergleich der Anzahl Zeichen |
char* strncpy(char*, const char*, size_t) | Anzahl Zeichen kopieren |
char* strpbrk(const char*, const char*) | Durchsuchen nach Zeichen eines zweiten Strings |
char* strrchr(const char*, int) | Suche nach Zeichen |
size_t strspn(const char*, const char*) | Länge des identischen Teilstücks |
char* strstr(const char*, const char*) | Teilstring suchen |
char* strtok(char*, const char) | Tokens finden |
Speicher-Funktionen:
void* memchr(const void*, int, size_t) | Suche nach Zeichen |
int memcmp(const void*, const void*, size_t) | Lexikalischer Vergleich |
void* memcpy(void*, const void*, size_t) | Kopieren |
void* memmove(void*, const void*, size_t) | Verschieben |
void* memset(void*, int, size_t) | Speicher füllen |
int strcoll(const char*, const char*) | landesspezifischer Vergleich |
size_t strxfrm(char*, const char*, size_t) | landesspezifische Umwandlung von Zeichen |
time.h, wctype.h, wchar.h
noch nicht vorhanden
|