Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet or computer – no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the authors
OK
C für PCs. Mit CD-ROM. Hardcover – 1 Jan. 2002
- Print length700 pages
- LanguageGerman
- Publishermoderne industrie Buch
- Publication date1 Jan. 2002
- ISBN-103826607848
- ISBN-13978-3826607844
Safety and product resources
Issue loading the information
- Product safety imagesManufacturer informationResponsible person
Issue loading the information
Issue loading the information
Issue loading the information
Product description
From the Author
Auf Wunsch vieler Leser haben wir außerdem vier zusätzliche Kapitel über die Windows-Programmierung mit C aufgenommen. Diese umfassen die Grundlagen der Graphik-Programmierung sowie das Erstellen von Dialog-Boxen und Menüs.
Weiterhin sind die Kapitel über Graphik- und hardwarenahe Programmierung für 16-Bit-Systeme im Buch enthalten, da diese Verfahren heute bei der Programmierung von "Embedded Systems" und "Prozess-Steuerungen" eingesetzt werden.
From the Inside Flap
Die Autoren führen Schritt für Schritt von elementaren Sprachkonzepten hin zur Entwicklung professioneller C-Programme. Der Leser erhält eine fundierte Einführung in C und wird mit einem breiten Anwendungsspektrum vertraut gemacht. Die Entwicklung professioneller Anwendungen ist das Ziel dieses Lehrbuches.
Jedes Kapitel bietet dem Programmierer Gelegenheit, anhand von Übungen mit Musterlösungen seine Kenntnisse zu überprüfen und zu vertiefen. Damit die erstellten Programme unmittelbar getestet werden können, sind auf der Buch-CD der Microsoft C/C++ Compiler (Book Edition) und der GNU C/C++-Compiler mit integrierter Entwicklungsumgebung beigefügt.
Die komplette ANSI-Standardbibliothek und zahlreiche Tabellen/Übersichten machen das Buch zu einem unentbehrlichen Nachschlagewerk.
Product details
- Publisher : moderne industrie Buch; 3. edition (1 Jan. 2002)
- Language : German
- Hardcover : 700 pages
- ISBN-10 : 3826607848
- ISBN-13 : 978-3826607844
- Best Sellers Rank: 2,177,838 in Books (See Top 100 in Books)
- 371 in C
- Customer reviews:
About the authors

Discover more of the author’s books, see similar authors, read book recommendations and more.

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
Customer Reviews, including Product Star Ratings, help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyses reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from Germany
There was a problem filtering reviews right now. Please try again later.
Das Buch ist in Lernkapiteln aufgeteilt. Besonders gut dabei die Aufteilung der Seiten. Auf der linken ist immer eine Grafik, ein Diagramm oder ein Beispiel gegeben und auf der rechten Seite wird darauf in Textform eingegangen.
Am Ende jedes Kapitels sind Beispielaufgaben mit Lösungen gegeben um das gelernte umzusetzen.
Für Leute die Programmieren lernen wollen ist es sehr zu empfehlen, für diejenigen die schon weiter fortgeschritten sind ist dieses Buch ein gutes Nachschlagewerk!
Im allgemeinen sind die Bücher von Kirch-Prinz sehr zu empfehlen.
Auf der beiligenden CD sind Lösungen zu den im Buch gestellten Aufgaben, sowie ein Compiler enthalten (GNU Compiler)!
Mir hat dieses Buch in meiner Weiterbildung schon sehr geholfen!!!
dies ist ein durchaus gutes Buch mit hohem Lehrwert. Dennoch vergebe ich nur 4 Punkte aus folgendem Grund.
Die Kapitel sind durchaus wohlgeordnet, jedoch ist die deutsche Übersetzung von Fachbegriffen teilweise sogar unbeholfen. Von einem Programmierer kann eigentlich erwartet werden, das sie/er zumindest Grundlagen in Englisch beherrscht. Hier jedoch werden sämtliche englische Fachbegriffe teilweise haarestreubend übersetzt. Zum Beispiel der englische Fachbegriff array wird übersetzt mit Vektor. Wenn man bedenkt das ursprünglich Informatik ein Mathematikstudium mit Vertiefung in IT war, ist diese Übersetzung einfach grundlegend falsch. Wenn man denn schon überhaupt eine deutsche Übersetzung wählt, warum nicht mit Feld, was sinnlich richtig wäre. Gerade bei so einem essenziellen Thema wie array's. Ich selbst plädiere aber für den generellen Einsatz der englischen Fachbegriffe, da diese in der Fachwelt verwendet werden.
Deswegen dem Buch aber weniger als 4 Punkte zu geben wäre ungerecht.
MfG
Marko Petsch
professionelle Anwendungen kann niemand allein mit diesem Buchwissen schreiben.
Maximal sind Programme auf "hello world"-Niveau als (Windows)GUI-Anwendungen denkbar.
Außerdem enthält das Buch eine Reihe von Fehlern, die dem Anspruch des Buches nach C99-Konformität
und auch der langen Historie dieses Werkes und seiner Autoren eindeutig NICHT gerecht werden.
Das Buch ist nur mit sehr großen Einschränkungen überhaupt zu empfehlen.
Das Buch richtet sich lt. Autoren an Anfänger und Fortgeschrittene, die das Schreiben professioneller C-Programme erlernen wollen.
Dieses Ziel erreicht dieses Buch eindeutig nicht, professionelle Programme schreibt niemand nach Lektüre eines Buches, schon gar nicht dieses Buches, hier erwecken die Autoren (wohl aus Marketinggründen) einen falschen Anschein.
Zu Beginn schon äußert sich das Unverständnis der Autoren bei der ausschließlichen Verwendung von "ANSI C99", was der C-Historie eindeutig nicht gerecht wird. Das ANSI Komitee hat erst 2000 den ISO C-Standard von 1999 übernommen, also wenn dann wäre ANSI C2000 korrekt, besser noch wäre die allseits verbreitete Formulierung C99 oder ISO C99.
Auch die durchgängig merkwürdige Schreibweise von Lay-out statt Layout gibt dem Leser Rätsel auf.
- "C ist an der Architektur der heutigen Rechner orientiert" -> kann niemals der Fall sein, denn zu Entstehungszeit von C 1972 konnte niemand die "heutigen" Rechnerarchitekturen kennen
- "hardwareabhängige Bestandteile von C wurden reduziert" -> Unsinn, da der C-Sprachstandard gerade keine Hardware und deren Eigenheiten kennt oder voraussetzt, im Gegenteil, es ist gerade ein Vorteil von C, aufgrund des geringen Sprach- und Bibliotheksumfanges sehr portabel und plattformunabhängig zu sein
Die Autoren weisen zwar darauf hin, dass sich mit C99 eine Erweiterung des bisherigen (C89)-Standards ergeben hat und sie jeweils in dem Buch darauf hinweisen werden, falls diese Neuerungen verwendet werden, scheitern aber schon beim 1.Beispiel daran ( Einzeilenkommentare "//" gibt es erst ab C99, worauf die Autoren nicht hinweisen )
Auch 'verzichten' die Autoren vollständig auf wichtige Fachbegriffe aus dem C-Standard, wie undefiniertes/unspezifiziertes/implementierungsabhängiges Verhalten.
Wertebereiche der Integer- und Gleitkomma-Basistypen werden falsch angegeben, diese sind gemäß C-Standard implementierungs- d.h. compilerabhängig und nicht fest, wie die Autoren schreiben.
Wenig Detailkenntnis offenbaren die Autoren auch bei der Behauptung, "char hat 8 Bit", -> falsch, gemäß Standard hat char genau CHAR_BIT Bits, und CHAR_BIT kann dabei >= 8 sein.
- "wchar_t = unsigned short" -> ist ebenso falsch weil implementierungsabhängig
- "int-Länge entspricht der Bit-Länge eines Maschinenregisters" -> auch hier wieder falsch, auch das ist wieder implementierungsabhängig und eben NICHT hardwareabhängig, z.B. erzeugt ein 32-Bit Compilersystem üblicherweise int-Werte mit 32-Bit Länge, die auf einem 64-Bit Rechner nach wie vor 32-Bit bleiben
- "sizeof(float) == 4" ist ebenso falsch, da der C-Standard den IEEE-754 Standard zur Fließkommabehandlung nicht definiert, und somit die 32-Bit floats aus IEEE nicht für C-Compiler gelten müssen
- den wichtigen Datentyp 'size_t' (z.B. als Rückgabewert von sizeof,strlen,...) 'vermeiden' die Autoren im ganzen Buch zu nennen
- "bei externen Bezeichnern sind die ersten 8 Zeichen signifikant" -> falsch, C89 sieht hier 6 vor, C99 hingegen 31
- "nicht initialisierte lokale Variablen haben undefinierten Anfangswert" -> falsch, lokale statische Variablen haben 0 als (impliziten) Initialwert
- printf("%d",sizeof(x)); verwendet, was UB (undefined behavior) bedeutet, ohne Hinweis auf C99, wo für size_t das Format "%zu" eingeführt wurde
- "Funktionsaufruf ohne vorige Deklaration -> Rückgabetyp int wird angenommen": ohne Hinweis, dass mit C99 solcher Aufruf nicht mehr konform ist
- "die Standardheader iso646.h und wchar.h wurden mit C99 eingeführt" -> falsch, zusammen mit wctype.h schon in C95
Bei konkreten Beispielcodes offenbaren sich dann weitere Unverständnisse der Autoren:
- #include <stdlib.h>
void srand(unsigned seed);
-> die in diesem Beispiel explizit erneut deklarierte Standardfunktion ist schlecht, prinzipiell sollte man nie irgendwas aus den Standardheadern 'verbessern' oder gar ändern
- fflush(stdin) wird häufig in Beispielen verwendet und explizit nochmal ausführlich erklärt, dass man so den Eingabepuffer löschen kann -> falsch, UB
- int ch;
scanf("%c",&ch);
-> falsch, Zeiger auf char erwartet, Zeiger auf int übergeben, die müssen gemäß Standard NICHT kompatibel sein -> UB
- Verwendung von "void main()" -> nicht standardkonform
- ".. unter den Betriebssystemen WINDOWS/DOS und UNIX kann ein dritter Parameter in main verwendet werden..."
int main(int argc,char**argv,char**envp)
Das ist kein C-Standard, sondern implementierungs- also compilerabhängig und NICHT BS-abhängig.
- (int*)malloc -> unnötiger Cast in C
- free(ptr) "...MUSS zuvor mit malloc/calloc/realloc reserviert worden sein..." : kein Hinweis, dass hier auch NULL möglich ist
- Verwendung von gets (zwar mit Hinweis, dass fgets besser ist, besser wäre dann aber gleich die Verwendung von fgets im Beispiel)
- while( scanf("%1[JNjn]",a)==0 )
fflush(stdin);
hier sind gleich 3 Fehler vorhanden
- fflush auf stdin ist UB
- liefert scanf hier EOF (d.h. -1), dann würde das Programm dies als gültige Eingabe interpretieren (und falsch weiterarbeiten)
- nach Ende von while ist der Einpuffer ungelöscht
- der übliche Fehler bei Callback-Funktion für das Sortieren von int mit qsort wird gemacht:
*(int*)a - *(int*)b;
was bei Werten in der Nähe von den int-Grenzen zu Fehlern führt
- fcloseall beschrieben: keine Standardfunktion
- exit(); und return aus main beschrieben ohne EXIT_SUCCESS/EXIT_FAILURE aus dem Standard zu nennen
- im Beispiel zu einer String-Ersetzungsfunktion void replace_all(char *old,char *new)
hätte sich gut eine Erklärung zum Unterschied zw.
char s[]="hello world";
und
char *s="hello world";
angeboten
- scanf("%80s", stringvar); ohne Hinweis auf den Abbruch beim 1. Whitespace dieser Variante
- NULL-Zeiger: "...ist als 0 definiert..." -> falsch, der Standard definiert NULL als Integerkonstante mit Wert 0, d.h. neben 0 wäre auch 0L oder (void*)0 denkbar; dies ist dem jeweiligen Compilerhersteller überlassen, also implementierungsabhängig und nicht etwa fest vorgegeben, wie hier beschrieben
- "Die Zeigerversion ist in der Regel der Indexversion vorzuziehen..." wenig verständlich in der heutigen Zeit der hochoptimierden Compiler ist das Compilat häufig sehr ähnlich wenn nicht gar identisch; lesbarer und einfacher ist die Arrayvariante, da kein extra Zeiger zum Iterieren definiert werden muss sondern ausschließlich das Array selbst referenziert wird
- durchgängige Verwendung von Vektor statt Array; schlechte Abgrenzung zum vector in C++, was dort etwas ganz anderes bedeutet ( die Autoren schreiben auch Bücher über C++ und hätten das erkennen müssen )
- unsinnige Empfehlung: "Vektoren mit größerem Speicherbereich sollten global definiert werden"; ohne Hinweis auf dynamischen Speicher, der einige Kapitel später vorgestellt wird; hier offenbart sich der mangelnde Überblick der Autoren über ihr eigenes Werk
- Vektorname ist identisch zur Adresse des 1.Elements -> ohne die im Standard definierten Ausnahmen zu nennen;
wenn das so wäre, wäre z.B. auch
int array[10];
array = NULL;
möglich, denn wenn array IMMER ein Zeiger wäre, würde hier kein Fehler auftreten, array wäre einfach ein Zeiger und als Lvalue möglich
- Entscheidungsoperator "?:" wird im Operator-Kapitel nicht genannt (findet man erst 2 Kapitel weiter in "Kontrollstrukturen", wo er nicht hingehört, da Operator und keine Kontrollstruktur )
Bei "Typ ganzzahliger Konstanten" ohne Suffix für Dezimalkonstanten beschreiben die Autoren nur "int, long, long long" ohne Hinweis, dass dies nur C99 relevant ist und C89 etwas anderes vorschreibt: 'int, long, unsigned long'.
Im gesamten Buch fehlt eine Übersicht über die Vorrangregeln aller Operatoren, der Leser muss sie einzeln in den Kapitel suchen (arithmetische,Vergleich,Bit,...).
Bei der Vorstellung der logischen Operatoren fehlt der Hinweis auf deren short-circuiting.
"In einem DOS-Editor (wie z.B. EDIT)..." legt den Schluss nahe, dass dieses Buch schon eine lange Historie hat, wahrscheinlich schon seit Beginn 90er ("C für PCs", dort wahrscheinlich mit noch mehr Fehlern als in diesem (neuesten) Buch).
Das Kapitel 25 "Hardware-nahe Programmierung unter DOS" mit Interrupts, 16-Bit Speichersegmentierung, 1MB Adressraum, EGA/VGA Bildschirmspeicher lässt ebenso den Schluss zu, dass hier völlig veraltete Beispiele gewählt wurden, die nichts mehr mit aktuellen "professionellen" Anwendungen zu tun haben.
Das trifft auch auf die Kapitel zur Windows-GUI-Programmierung zu, in denen die ebenfalls veralteten Funktionsaufrufe der Windows-API zur Window/GDI/Font... Programmierung relativ ausführlich vorgestellt werden.
Einen wesentlichen Umfang im Buch nimmt die Beschreibung der Bibliotheksfunktionen ein, immerhin fast 300 S. von 858 S. werden hiervon belegt.
Immerhin ist diese Referenz alphabetisch aufgebaut, C99 Hinweise liegen vor und manchmal auch ein Codebeispiel.
Wer eine umfangreiche, deutschsprachige Referenz über die C-Bibliothek sucht, kann diese hier finden.
Dieses stark Windows-lastige Werk genügt keinesfalls zum Aufbau von professionellem C-Wissen, die Autoren versprechen hier etwas Falsches.
Die teilweise veralteten Beispiele, die nicht vorhandene Operator-Vorrangtabelle, das ständige UB "fflush(stdin)" führen dazu, dass dieses Buch für Einsteiger und Fortgeschrittene nur sehr, sehr eingeschränkt zu empfehlen ist.
Von einem teilweise habilitierten Autorenpaar kann man in einer '2. aktualisierten und erweiterten Auflage 2007' und bei der langjährigen Historie des Buches bis in die 90er Jahre hinein erwarten, dass keine Anfängerfehler und UB mehr vorkommen.
Gut geeignet, wenn man C erlenen möchte.
Leider (?) ist das letzte Drittel sehr auf PCs fokussiert und im Zeitalter der 32 bit oder gar 64 Bit Betriebssysteme recht veraltet.
Ein Neueinsteiger in C würde und sollte sich mit small, large oder huge Speichermodellen nicht mehr belasten.
Wenn Sie das Buch günstig gebraucht erwerben können ist es eine gute Einführung in die Sprache C.
Als Geschenk oder bei nigel-nagel-neu Anschaffung würde ich aber ein anderer Werk nehmen.
Kann ich nur weiter empfehlen.