Forum: PC-Programmierung C-Buch für Selbststudium


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von püpchen (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Hallo, ich bin auf der Suchen nach einem SEHR GUTEM Buch, um mir im 
Selbststudium C beizubringen. Dabei soll es weniger darum gehen, sich 
mit Microcontrollern auseinanderzusetzen. Habt ihr Ideen/ Erfahrungen?

Würde mich über Tipps freuen.

MfG

: Verschoben durch Moderator
von Michael Gugelhupf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
K&R ANSI Edition

von püpchen (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
https://books.google.de/books?id=3LklBAAAQBAJ&pg=PA3&dq=K%26R+ANSI+Edition+buch&hl=de&sa=X&ved=0ahUKEwjtkouNlPnoAhUS-aQKHbVXAQ0Q6AEIKDAA#v=onepage&q=K%26R%20ANSI%20Edition%20buch&f=false

meinst du das? wenn ja, ist dann das Buch "Programmieren in C 
Voraussetzung"? (siehe Anhang, dort steht, dass das Lehrgrundlage ist

von Till H. (Firma: Student) (till_h)


Bewertung
-1 lesenswert
nicht lesenswert

von Arduino Fanboy D. (ufuf)


Bewertung
-1 lesenswert
nicht lesenswert
Till H. schrieb:
> Das hier:
> http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/index.htm
>
> Ist sogar kostenlos.

In dem Buch stecken grobe Fehler!
Nein, ich spreche mich gegen diese Empfehlung aus.

Das Buch ist total klasse, wenn man schon C kann und üben möchte Fehler 
in einem Buch zu finden.
Für Anfänger beinhaltet es zu grobe Schnitzer.

von total perspective vortex (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Michael Gugelhupf schrieb:
> K&R ANSI Edition

Und täglich grüsst der selbe Sch....:

* Beitrag "Wie aktuell ist K&R C?"
* Beitrag "K&R C ausreichend für Mikrocontrollerprogrammierung?"

Fazit: Es gibt bessere Programmierlehrbücher als die frühen Versuche aus 
dem vergangenen Jahrhundert, erst recht bezüglich Mikrocontroller.

von W. (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
"Programming in C" von Kochan.

Ist zwar langatmiger als der K&R, dafür aber anfängerfreundlicher.

von Max (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich würde " Programmieren von Anfang an" von Helmut Erlenkötter
oder "Einstieg in C " von Thomas Theis empfehlen.
Ich habe mir vor 2 Jahren beide gekauft und bin sehr zufrieden.
Gruß

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
total perspective vortex schrieb:
> Fazit: Es gibt bessere Programmierlehrbücher als die frühen Versuche aus
> dem vergangenen Jahrhundert, erst recht bezüglich Mikrocontroller.

das wäre meine nächste Frage: wie aktuell muss das Buch sein, um für 
heutige Standards ausreichend zu sein

Zum Thema kosten: Ich habe über Shibboleth Onlinen-Zugang zu allen 
Büchern, die von Verlägen wie Springer, hanser etc herausgegeben werden. 
Also Kosten sollten keine Rolle spielen!

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
W. schrieb:
> "Programming in C" von Kochan.

scheint auch uralt zu sein. Spielt das eine Rolle?

von M. K. (sylaina)


Bewertung
0 lesenswert
nicht lesenswert
püpchen schrieb:
> das wäre meine nächste Frage: wie aktuell muss das Buch sein, um für
> heutige Standards ausreichend zu sein

IMO sollte es den STD99 mit beinhalten, darf aber auch gern 20 Jahre alt 
sein, muss also keines aus dem letzten Monat sein ;)

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Max schrieb:
> " Programmieren von Anfang an" von Helmut Erlenkötter

wieder etwas älter

Max schrieb:
> "Einstieg in C " von Thomas Theis empfehlen.

von 2014. können das auch andere weiterempfehlen?=

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
also Alter ist für mich kein Auschlusskriterium! soll nicht so 
rüberkommen. Soll aber Stand der technik sein

von Arduino Fanboy D. (ufuf)


Bewertung
-1 lesenswert
nicht lesenswert
püpchen schrieb:
> Zum Thema kosten: Ich habe über Shibboleth Onlinen-Zugang zu allen
> Büchern, die von Verlägen wie Springer, hanser etc herausgegeben werden.
> Also Kosten sollten keine Rolle spielen!

Dann wäre "meine" Entscheidung klar.

In jedes Buch schnuppern, und das welches am leichtesten runter geht, 
wird auswendig gelernt.
Ein Seitenblick auf andere Bücher ist auch kein Fehler, da ja nicht nur 
harte C Fakten beschrieben werden, sondern auch Sichtweisen, Strategien 
usw.

Empfehlungen sind ein Spiegelbild des Empfehlenden.
Das muss nicht mit dir übereinstimmen, das Bild.


Tipp:
Manchmal ist die Suche nach dem besten Buch nur ein Trick des eigenen 
Gehirns, um sich vor der Arbeit des Lernens zu drücken.

: Bearbeitet durch User
von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Arduino Fanboy D. schrieb:
> Tipp:
> Manchmal ist die Suche nach dem besten Buch nur ein Trick des eigenen
> Gehirns, um sich vor der Arbeit des Lernens zu drücken.

in dem Fall nicht, bin todernst. keine Ausreden mehr =)

Arduino Fanboy D. schrieb:
> In jedes Buch schnuppern, und das welches am leichtesten runter geht,
> wird auswendig gelernt.
> Ein Seitenblick auf andere Bücher ist auch kein Fehler, da ja nicht nur
> harte C Fakten beschrieben werden, sondern auch Sichtweisen, Strategien
> usw.

gute Argumente. Aber zu Anfang bracuht man wenigstens eine Referenz, um 
auszuschließen, keinen inhaltlichen Schrott zu lesen

von Arduino Fanboy D. (ufuf)


Bewertung
-1 lesenswert
nicht lesenswert
püpchen schrieb:
> Aber zu Anfang bracuht man wenigstens eine Referenz, um
> auszuschließen, keinen inhaltlichen Schrott zu lesen

Nicht zur ersten Auflage greifen.

Annahme:
Je mehr Auflagen, desto besser korrigiert.
Desto frischer/moderner der Inhalt

püpchen schrieb:
> keine Ausreden mehr =)
> ----
> Aber zu Anfang bracuht man wenigstens eine Referenz

Definiere "Ausrede"

von total perspective vortex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
püpchen schrieb:
> gute Argumente. Aber zu Anfang bracuht man wenigstens eine Referenz, um
> auszuschließen, keinen inhaltlichen Schrott zu lesen

Referenz ist aber die Praxis, respektive der benutzte Compiler, 
insbesonders wenn Referenz K&R bedeudet. Dort stimmt teilweise nicht mal 
mehr der Syntax.

>also Alter ist für mich kein Auschlusskriterium! soll nicht so
>rüberkommen. Soll aber Stand der technik sein

Naja Stand der Technik auf Programmieren bezogen bedeutet aber das die 
IDE nicht älter als 10 Jahre sein sollte. Auch hinsichtlich der 
Bibliotheken ist Alter ein KO-Kriterium.

Grad mal bei Algorithmen die nicht auf HW-Spezialitäten setzen wie 
bubble sort kann man beim Alter mal ein Auge zufrücken. Bei den bit-bang 
Getue aus der Zeit vor mikrocontroller peripherals allerdings nicht.

Und auch für den, der auf Stand der Technil pocht, ist es nicht falsch 
erstmal die threads vom letzten Jahr zu lesen statt was Neues aufzutun. 
So schnell sind die Bücherschreiber nicht.

Beitrag "Buch für Einstieg in C Programmierung"
Beitrag "AVR/C Buch für wirklich absolute Anfänger"

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Arduino Fanboy D. schrieb:
> Definiere "Ausrede"

zu viele Bitches am Start... was erwartest du für eine Anwort? die kann 
nur infantil ausfallen

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
total perspective vortex schrieb:
> Referenz ist aber die Praxis, respektive der benutzte Compiler,
> insbesonders wenn Referenz K&R bedeudet. Dort stimmt teilweise nicht mal
> mehr der Syntax.

gut zu wissen

total perspective vortex schrieb:
> Und auch für den, der auf Stand der Technil pocht, ist es nicht falsch
> erstmal die threads vom letzten Jahr zu lesen statt was Neues aufzutun.
> So schnell sind die Bücherschreiber nicht.

danke für den Hinweis

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
total perspective vortex schrieb:
> Beitrag "Buch für Einstieg in C Programmierung"

wobei sich Beitrag auf microcontroller zuspitzt

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Philipp Klaus K. (Firma: Albert-Ludwigs-Universität) (pkk)


Bewertung
0 lesenswert
nicht lesenswert
"Modern C" von Jens Gustedt ist ein sehr gutes Buch, aber auch recht 
anspruchsvoll; es mag nicht für jeden Anfänger das richtige sein. Aber 
für jene, die schon etwas Programmiererfahrung (möglicherweise in einer 
anderen Sprachen) oder C-Grundkenntnisse haben, würde ich es auf jeden 
Fall empfehlen.

"Effective C" von Robert Seacord ist zwar noch nicht erschienen, und ich 
habe es selbst noch nicht gelesen, aber ich gehe davon aus, dass es 
ebenfalls ein sehr gutes Buch ist.

Beide Bücher sind von Autoren geschrieben, die sich bestens mit C 
auskennen, und auch Mitglied von ISO SC22WG14, des 
Standardisierungsgremiums für C, sind.

von Philipp Klaus K. (Firma: Albert-Ludwigs-Universität) (pkk)


Bewertung
0 lesenswert
nicht lesenswert
total perspective vortex schrieb:
> Michael Gugelhupf schrieb:
>> K&R ANSI Edition
>
> Und täglich grüsst der selbe Sch....:
>
> * Beitrag "Wie aktuell ist K&R C?"
> * Beitrag "K&R C ausreichend für Mikrocontrollerprogrammierung?"
>
> Fazit: Es gibt bessere Programmierlehrbücher als die frühen Versuche aus
> dem vergangenen Jahrhundert, erst recht bezüglich Mikrocontroller.

Das kommt aber auch darauf an, welchen Compiler man später verwendet. 
Wenn man sich mit Keil oder Raisonance herumschlagen muss, die kaum uach 
nur den ANSI-Standard von 1989 unterstützen, ist die 2. Auflage von K&R 
sicher ausreichend.

Wenn man mit einem Compiler, der aktuellere Standard weitgehend 
unterstützt (z.B. GCC, clang, IAR, SDCC) arbeitet, empfiehlt es sich 
wohl, auch ein Buch zu lesen, dass neuere C-Standards (insbes. ISO C99 
und C11/C17) behandelt.

von What kinda boy you're looking for ? (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Philipp Klaus K. schrieb:

> "Effective C" von Robert Seacord ist zwar noch nicht erschienen, und ich
> habe es selbst noch nicht gelesen, aber ich gehe davon aus, dass es
> ebenfalls ein sehr gutes Buch ist.

Mein Buch über C ist auch noch nicht erschienen -und wird es auch nie.
Jedes nicht erschienene Buch über dieses Thema erspart der Menschheit 
Leid.

von CPU Historiker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich würde eher ein Buch über gehobenes Management lesen.
Gut in C Codieren kann inzwischen schon jeder zweite Inder.
Warum willst du es auch können?

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
CPU Historiker schrieb:
> Ich würde eher ein Buch über gehobenes Management lesen.
> Gut in C Codieren kann inzwischen schon jeder zweite Inder.
> Warum willst du es auch können?

vllt will ich verhindern, dass die Inder uns überrennen wie es die 
reisfresser tun

von What kinda boy you're looking for ? (Gast)


Bewertung
0 lesenswert
nicht lesenswert
püpchen schrieb:
> CPU Historiker schrieb:
>> Ich würde eher ein Buch über gehobenes Management lesen.
>> Gut in C Codieren kann inzwischen schon jeder zweite Inder.
>> Warum willst du es auch können?
>
> vllt will ich verhindern, dass die Inder uns überrennen wie es die
> reisfresser tun

Dann mußt Du Bagger und Raupen benutzen, um ein 2. Himalaya-Gebirge 
aufzutürmen.

Oder mit solchem Dreck:
https://www.cise.ufl.edu/~manuel/obfuscate/12bugs.of.c

Leute zu Tode erschrecken.

von W.S. (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
püpchen schrieb:
> Hallo, ich bin auf der Suchen nach einem SEHR GUTEM Buch...

Ah ja, ein nur gutes Buch ist zu wenig.

Gegenfrage: Kannst du denn überhaupt schon programmieren? Oder ist das 
Einarbeiten in C (ausgerechnet C !!) dein tatsächlicher Beginn einer 
Programmierer-Karriere?

püpchen schrieb:
> vllt will ich verhindern, dass die Inder uns überrennen wie es die
> reisfresser tun

Kulinarische Details sind hier eher außen vor. Hier geht es um's 
programmieren lernen.

W.S.

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
W.S. schrieb:
> Oder ist das
> Einarbeiten in C (ausgerechnet C !!) dein tatsächlicher Beginn einer
> Programmierer-Karriere?

der Beginn. Ich komme aber in naher zukunft beruflich nicht drumherum 
mich mit C auszeinanderzusetzen. Deswegen C. Deswegen jetzt. Deswegen. 
beginnen.

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
was würdest du denn vorschlagen? asm?

von Lolita (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Püppchen meinte:

> was würdest du denn vorschlagen? asm?

Java , Python
C++

Wenns C sein muß, fängst du mit dem Theis an
und nimmst anschließend "C im 21 Jarhundert"
von Ben Klemmers.

C++ Bücher  zum Beispiel C++ von Kopf bis Fuß,
"in C++ denken"  o.ä.
Bei C++ darauf achen  das C++11 und C++17 mit drinne
sind, da geht die Entwicklung zur Zeit ganz schön schnell.

mfg

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
also ist C++ einfacher als C? Ich habe schon ein eigenes programm in C 
geschrieben, fand es jetzt nicht allzu unangenehm. C++ wäre für mich 
wirklich absolutes Neuland

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
püpchen schrieb:
> also ist C++ einfacher als C?

C++ ist eine Erweiterung auf C, also zusätzliche Funktionen und somit 
auch zusätzliche Komplexität. Sollte man sich trotzdem mal angucken, 
denn sehr viele jüngere Programmiersprachen sind daran angelehnt und 
daher ähnlich.

> C++ wäre für mich wirklich absolutes Neuland

Wenn du dieses Tutorial durchgearbeitet hast, dann nicht mehr: 
http://stefanfrings.de/qt_lernen/index.html

Ich würde auf jeden Fall dringend dazu raten, diese Programmiersprache 
zuerst auf einem vollwertigen PC zu lernen, bevor du dich mit den 
Beschränkungen von Mikrocontrollern herumschlagen musst.

: Bearbeitet durch User
von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Wenn du dieses Tutorial durchgearbeitet hast, dann nicht mehr:
> http://stefanfrings.de/qt_lernen/index.html

dein Tutorial? =)

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Ich würde auf jeden Fall dringend dazu raten, diese Programmiersprache
> zuerst auf einem vollwertigen PC zu lernen, bevor du dich mit den
> Beschränkungen von Mikrocontrollern herumschlagen musst.

genau das war mein Plan

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
püpchen schrieb:
> dein Tutorial? =)

Ja aber nur zufällig. ist mir so raus gerutscht :-)

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Max schrieb:
> "Einstieg in C " von Thomas Theis empfehlen.

also erst das. und dann

Lolita schrieb:
> "C im 21 Jarhundert"
> von Ben Klemmers.

 wüürde das jedeer so machen? (Stille ist Zustimmung)

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Ja aber nur zufällig. ist mir so raus gerutscht :-)

hast du soetwas auch für c? =)

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
püpchen schrieb:
> würde das jedeer so machen?

Ich würde direkt C++ lernen, dann hast du 98% von C schon mit dabei. Die 
2% Differenz merkst du dann schon beim Programmieren.

Wenn du erwachsen bist, empfehle ich das Buch: Der C++ Programmierer, 
von Ulrich Breymann

: Bearbeitet durch User
von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
püpchen schrieb:
> hast du soetwas auch für c?

Ja, aber direkt auf Mikrocontroller gemünzt:
http://stefanfrings.de/mikrocontroller_buch/index.html

Vielleicht schaust du dir erstmal das C++ Tutorial an, und dann 
probierst du die Untermenge C auf einem Mikrocontroller. Wenn das 
klappt, kannst du als drittes C++ auf Mikrocontroller versuchen. Alles 
was man dazu wissen muss, steht irgendwo in der Artikelsammlung von 
mikrocontroller.net. Mir hat das jedenfalls gereicht, was dort steht.

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Wenn du erwachsen bist, empfehle ich das Buch: Der C++ Programmierer,
> von Ulrich Breymann

pfff man wird doch nie erwachsen


Danke für deine Hilfe.

Stefan ⛄ F. schrieb:
> Ich würde direkt C++ lernen, dann hast du 98% von C schon mit dabei. Die
> 2% Differenz merkst du dann schon beim Programmieren

heißt das denn, dass wenn ich C++ beherrsche auch automatisch in C 
programmieren kann? andersherum dann aber nicht?

von Oliver S. (oliverso)


Bewertung
1 lesenswert
nicht lesenswert
püpchen schrieb im Beitrag #6233326
> heißt das denn, dass wenn ich C++ beherrsche auch automatisch in C
> programmieren kann? andersherum dann aber nicht?

C++ ist keine „Erweiterung“ von C, sondern eine andere Sprache, die ein 
paar gemeinsame Wurzeln mit C hat.

Willst du allgemein Programmieren lernen, lerne alles andere, nur kein 
C. Willst du in C programmieren lernen, dann lerne C.

Dazu musst dir halt klar werden, was du willst, und warum.

Oliver

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
püpchen schrieb:
> heißt das denn, dass wenn ich C++ beherrsche auch automatisch in C
> programmieren kann?

Ja, denn C++ enthält C als Untermenge.

Wenn du eine Kombi-Mikrowelle bedienen kannst, kannst du auch eine 
herkömmliche einfache Mikrowelle bedienen.

: Bearbeitet durch User
von püpchen (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Oliver S. schrieb:
> Dazu musst dir halt klar werden, was du willst, und warum.

ersteinmal alle Türen offen halten!

Stefan ⛄ F. schrieb:
> püpchen schrieb:
>> heißt das denn, dass wenn ich C++ beherrsche auch automatisch in C
>> programmieren kann?
>
> Ja

und andersherum?

PS: was haltet ihr von der polarisierenden Aussage im Anhang?

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Ja, denn C++ enthält C als Untermenge.

Oliver S. schrieb:
> C++ ist keine „Erweiterung“ von C, sondern eine andere Sprache, die ein
> paar gemeinsame Wurzeln mit C hat.

gibt es ein Richtig oder Falsch?

von Knigges (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

komme gerade aus dem Home Office mit dickem Hals. Mein AG 
(Automobilkonzern) hat per Rundmail an alle Programmierer die Anweisung 
ausgegeben: Ab sofort keine Neuentwicklungen mehr in C oder C ähnlichen 
Sprachen. Wartbarkeit und Sicherheit sind bei C und ähnlichen Sprachen 
nicht mehr gewährleistet. C wird als Hochrisiko Software eingestuft. 99% 
aller Sicherheitsrisiken werden durch die Struktur von C-Compilern 
verursacht.

Vorhandenen Anwendungs Software wird im Laufe der nächsten 5 Jahre auf 
RUST umgestellt. Neue Fahrzeug Baureihen dürfen nicht mehr mit C 
basierender Software versehen werden.

RUST = Europa Park, oder habe ich da was nicht mit bekommen?

So kann man das Personal auch ausdünnen.

Saure Grüße Knigges

von Pyramidenanspitzer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> püpchen schrieb:
>> heißt das denn, dass wenn ich C++ beherrsche auch automatisch in C
>> programmieren kann?

Nein, zumindest nicht effizient und für manche (kleinen) Mikrocontroller 
ist es notwendig effizientes C schreiben, weil es entweder kein C++ 
compiler gibt, oder C++ resp. die verwendung von C++ Libraries den Code 
unnötig aufbläht. Ohler fehleranfällig komplex macht.

Wer nur Flugzeug gelernt hat, kann keinen PKW effizient einparken.

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Oliver S. schrieb:
> C++ ist keine „Erweiterung“ von C, sondern eine andere Sprache,
> die ein paar gemeinsame Wurzeln mit C hat.

Das sagt der Erfinder (Bjarne Stroustrup). Ich denke er wollte einfach 
nicht zugeben, dass er fast die ganze Sprache C einfach als Basis 
genommen hat, um dann seine OOP Sachen oben drauf zu "flanschen". Denn 
genau so fühlt sich C++ an - keinesfalls elegant. Wer vorher z.B. in 
Java entwickelt hat, wird beim lernen von C++ einige male würgen müssen.

Wirklich, die Sprache ist meiner Meinung nach ziemlich hässlich. Voller 
Fallstricke und Altlasten. Dennoch hat sie ihre Existenzberechtigung, 
weil C++ Programme viel kleiner und dadurch auch effizienter sind, als 
Java.

Ich programmiere beruflich in Java und in meinen Hobbyprojekten 
wechselweise in C und C++. Ich habe aber früher auch beruflich in C++ 
programmiert.

: Bearbeitet durch User
von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
wenn ihr die Wahl hättet: ihr müsstet eine auswertungs software (welcher 
Art acuh immer) schreiben, was würdet ihr wählen? C oder C++? O)der kann 
man das nicht so verallgemeinern?

von Teo D. (teoderix)


Bewertung
0 lesenswert
nicht lesenswert
C++ ist viel zu komplex, um mit einem Hirn erfaßt zu werden. C viel zu 
simpel um sicher zu sein.... Ich hab ja mal mit BASIC mein Geld 
verdient...!? (1988-92)

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
püpchen schrieb:
> eine auswertungs software  (welcher Art auch immer)

Dann würde ich verweigern, mich jetzt schon zu entscheiden. Es kommt da 
wirklich auf den Anwendungsfall an. Software, die schnell und billig 
entwickelt werden soll, würde ich jedenfalls nicht mit C++ schreiben 
sondern eher Java oder vielleicht Python.

Bei Web basierten Anwendungen sollte man einen Blick auf Frameworks und 
Applikationsserver werfen. Da wurde in den vergangenen Jahren sehr viel 
mehr in Java veröffentlicht, als in C++.

Aber auf Mikrocontrollern wäre Java und Python meine allerletzte 
Alternative, wenn gar nichts anderes geht.

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Teo D. schrieb:
> Ich hab ja mal mit BASIC mein Geld verdient...!? (1988-92)

Lange war's her, da hat man noch jede Funktion persönlich mit Namen 
gekannt.

von Egon D. (egon_d)


Bewertung
-1 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:

> Oliver S. schrieb:
>> C++ ist keine „Erweiterung“ von C, sondern eine
>> andere Sprache, die ein paar gemeinsame Wurzeln
>> mit C hat.
>
> Das sagt der Erfinder (Bjarne Stroustrup). Ich denke
> er wollte einfach nicht zugeben, dass er fast die
> ganze Sprache C einfach als Basis genommen hat, um
> dann seine OOP Sachen oben drauf zu "flanschen".

Die Frage ist: WARUM hat der C als Basis genommen?

Weil C das Maximum an Eleganz ist?
Weil er es anders nicht hinbekommen hätte?

Oder vielleicht, weil er die sich andeutende Erfolgswelle
von C für sich ausnutzen wollte und deswegen auf einer
Sprache aufbaut, die von vielen Programmierern gern
verwendet wurde?

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
nochmal um sicherzugehen:

C++ komplexer als C, also wahrscheinlich mehr Lernaufwand. Dafür C 
inkludiert, heißt später ist man flexibel.

Andersherum: weniger zeitintensiv, dafür auf C beschränkt.

Und dann kommt noch das Thema mit OO auf... siehe Anhang oben

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Egon D. schrieb:
> WARUM hat der C als Basis genommen?

Ich denke, er hat C als Basis genommen, weil C damals eine weit 
verbreitete Programmiersprache war die ihren Zweck gut erfüllt hat und 
der Quelltext von mindestens einem C Compiler quelloffen war.

Es gab auch schon das Konzept, die Sprache durch Makros zu erweitern.

Er hat diese Idee weiter entwickelt und seine Sprache so gestaltet, dass 
man sie mit einem Code-generator umsetzen konnte. Die ersten C++ 
Compiler hatten als Output C Quelltext erzeugt, der dann von einem 
bereits bestehenden C Compiler in Assembler übersetzt wurde, was dann 
wiederum in Maschinencode übersetzt wurde.

Das ist aber schon lange her.

: Bearbeitet durch User
von Teo D. (teoderix)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Teo D. schrieb:
>> Ich hab ja mal mit BASIC mein Geld verdient...!? (1988-92)
>
> Lange war's her, da hat man noch jede Funktion persönlich mit Namen
> gekannt.

Ähhh... Das war sündhaft teure Büro-Soft, von Serienbrief, 
Lagerverwaltung, Kunden-Datenbank, über Auftragsbearbeitung bis hin zur 
zugekauften FiBu.... OK, dass BASIC wußte was ne Relationale Datenbank 
is... ;D

Ach ja, Multi-User fahrig (bis max 10 User) wars auch noch.

von Oliver S. (oliverso)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Er hat diese Idee weiter entwickelt und seine Sprache so gestaltet, dass
> man sie mit einem Code-generator umsetzen konnte. Die ersten C++
> Compiler hatten als Output C Quelltext erzeugt, der dann von einem
> bereits bestehenden C Compiler in Assembler übersetzt wurde, was dann
> wiederum in Maschinencode übersetzt wurde.

Was ungefähr deinem Kenntnisstand der Sprache entspricht. Das war im 
letzten Jahrtausend.

Und seitdem hat sich C++ gründlich weiterentwickelt. Sehr viel weiter, 
und in sehr viele verschiedene Richtungen gleichzeitig. Das kann man der 
Sprache durchaus vorwerfen, ändert aber nichts daran, daß C++ und C 
heute soweit auseinander sind wie Basic und C. Es sind einfach völlig 
verschiedene Sprachen.

Ein Grundsatz im C++-Training lautet daher: „stop teaching C“.

Wie gesagt, wenn man C lernen will, dann soll man C lernen. Wenn nicht, 
dann nicht.

Oliver

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Oliver S. schrieb:
> seitdem hat sich C++ gründlich weiterentwickelt. Sehr viel weiter,

Zweifellos. C++ ist inzwischen viel umfangreicher geworden. Dennoch ist 
es nach wie vor abwärtskompatibel, und deswegen enthält es immer noch 
(fast) den gesamtem Umfang von C.

Wenn C/C++ nicht beide so sehr Abwärtskompatibel wären, dann wären sie 
wohl in vielen Bereichen von jüngeren Programmiersprachen verdrängt 
worden.

Wie gesagt, lerne erstmal C++ auf einem PC. Wenn du danach noch 
Interesse an C hast, dann wirst du durch ein entsprechendes C Tutorial 
ziemlich flott durch kommen. Da wird dich nichts mehr überraschen - 
außer vielleicht, was alles nicht geht :-)

: Bearbeitet durch User
von Jemand (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Ja, denn C++ enthält C als Untermenge.

Nein:
#include <stdlib.h>

float* foo(int n)
{
    return malloc(n);
}
Gültiges C, ungültiges C++. Dass gängige C++-Compiler auch neuere 
C-Features (VLA, Flexible Array Member) schlucken, macht daraus keine 
C++-Features. Von Untermenge ist also nicht zu reden, trotz der sehr 
großen Schnittmenge.

von Teo D. (teoderix)


Bewertung
0 lesenswert
nicht lesenswert
Egon D. schrieb:
> Die Frage ist: WARUM hat der C als Basis genommen?

Näher an ASS ging halt nich.....!!!

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi püpchen

püpchen schrieb:
> Ich komme aber in naher zukunft beruflich nicht drumherum
> mich mit C auszeinanderzusetzen. Deswegen C. Deswegen jetzt. Deswegen.
> beginnen.

Ich selbst bringe mir gerade im Selbststudium C bei und fahre mit 
folgender Strategie sehr gut:
Ich habe über Udemy einen C Kurs für Einsteiger für 10€ gekauft (ja ja, 
man kann C sicherlich besser durch ein Buch lernen oder Videos gratis 
auf Youtube anschauen), habe parallel dazu eine interessante Playlist 
auf Youtube gefunden und verwende in Ergänzung dazu das Buch "C Primer 
Plus" von Prata, was natürlich ein dicker Schinken ist. Ich lese nicht 
die ganzen 500 Seiten, sondern überfliege in den jeweiligen Kapiteln, ob 
dort etwas wichtiges bei ist, was in den Videos nicht behandelt wurde.

Die ganzen einführenden Kapitel bezüglich if-else, while, for-loop etc. 
beherrscht du nach einem einzigen Nachmittag oder spätestens nach einem 
Wochenende, sofern du nicht auf den Kopf gefallen bist. Dann kommen die 
Themen Arrays und Funktionen (damit verbunden call by reference, call by 
value) dran:
- Für Arrays wirst du ebenfalls einen Nachmittag bis einen Tag brauchen
- Für Funktionen wirst du ebenfalls einen Nachmittag bis einen Tag 
brauchen

Richtig interessant (und einigermaßen komplex) wird es mE. bei Zeigern 
(Pointern) und speziellen Datentypen wie structs, typedef sowie 
dynamischer Speicherbesetzung. Hast du letztendlich diese Themen 
verinnerlicht, hast du ein sehr gutes Fundament bezüglich C, auf das du 
aufbauen kannst.

An dieser Stelle solltest du so viele (und möglichst umfangreichere) 
Programme schreiben, denn meine Erfahrung ist, dass der Syntax einer 
Sprache nicht das Problem ist, sondern dass man das Problem in Zeilen 
Code zu formulieren und zu lösen. Das bedarf logischem Denken, 
Fehlersuche, Blatt Papier und Bleistift, Blockdiagramme etc. und die 
Sprache selbst ist zweitrangig.

Hast du Routine im Programmieren, kannst du über weitere Schritte 
nachdenken:

Ob du in Richtung uC gehen willst oder vielleicht in 
Datenstrukturen/Algorithmen.

Also, meine Sicht der Dinge:
Wenn du arbeitsbedingt sowieso mit C in Berührung kommen wirst, dann 
lerne im ersten Anlauf C. Alles andere kommt später.

Viel Erfolg,

von Teo D. (teoderix)


Bewertung
-1 lesenswert
nicht lesenswert
Alex schrieb:
> - Für Arrays wirst du ebenfalls einen Nachmittag bis einen Tag brauchen

Hihihi.... ((von was träumst du Nachts?) && (ab 80% setz ich 'n €!)){
Wann zerfallen die Dinger eigentlich? (++n)}

...

C enthält ALLES was man sowie so braucht...

Alex schrieb:
> und die
> Sprache selbst ist zweitrangig.

Aber nur wenn wir alle kastrierte Jahrmartsschühler wären ( was is'n das 
eigentlich?!)!

von zitter_ned_aso (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Oliver S. schrieb:
> Ein Grundsatz im C++-Training lautet daher: „stop teaching C“.

Die Aussage habe ich auch schon bei C++-Youtubevorträgen gehört.

Soviel zum Thema "Wer C++ lernt, lernt C automatisch mit".  Das ist 
mitnichten der Fall.

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Teo D. schrieb:
> Jahrmartsschühler wären ( was is'n das
> eigentlich?!)!

Gute Frage...

von Teo D. (teoderix)


Bewertung
0 lesenswert
nicht lesenswert
Alex schrieb:
> Teo D. schrieb:
>> Jahrmartsschühler wären ( was is'n das
>> eigentlich?!)!
>
> Gute Frage...

Betschwestern!

: Bearbeitet durch User
von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi Alex,

danke für deinen Lehrplan. Wobei, wenn ich ehrlich bin, arbeite ich 
ungern mit Youtube-videos und Online Coaching. bin eher der Typ, der 
gerne Bücher still und zurückgezogen liest

von Oliver S. (oliverso)


Bewertung
0 lesenswert
nicht lesenswert
Lolita schrieb:
> und nimmst anschließend "C im 21 Jarhundert"
> von Ben Klemmers.

Lies aber vorher die Rezesionen auf A****. Da kommen zwar grundsätzlich 
alle Bücher über Programmiersprachen schlecht weg, weil immer 
irgendjemand damit über-, und ein anderer unterfordert ist, aber das 
Buch polarisiert dann doch sehr deutlich.

Vielleicht ist hier was dabei:

https://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list

Und leider, gute Bücher zu Programmiersrpachen sind selten. Gute 
Übersetzungen englischer Fachbücher ins Deutsche sind selten. Die 
Schnittmenge ist fast nicht existent.

Oliver

: Bearbeitet durch User
von Praktiker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo

wobei es die letztendlich auch nicht geben kann.
Egal wie gut das Buch ist, letztendlich vermittelt es "nur" eine 
(hoffentlich verständliche und detaillierte) Anleitung wie Befehle und 
Konzepte funktionieren, aber ähnlich wie man mit den beherrschen des 
ABC, guten Grammatikkenntnissen, der Zeichensetzung, perfekter 
Rechtschreibung und guter Ausdrucksfähigkeit nicht automatisch auch ein 
Schriftsteller ist (bzw. das alles als komplettes Paket gar nicht 
notwendig ist wenn man besonders begabt ist oder einfach gut erzählen 
kann), so lernt man aus Büchern usw. letztendlich auch nicht wie man 
letztendlich in der Praxis wirklich programmiert, abgesehen von den ewig 
ähnlichen "Programmen" - gerne irgendeine Personaldatenbank-die mit der 
echten Praxis als nutzbares Werkzeug was echten Erwartungen und 
Standards standhalten soll so gar nicht gemein hat.
Oder um etwas näher bei den zu bleiben was uns begeisterte Bastler und 
reinen Hobbyisten betrifft:
Die berühmte "Hallo Welt" Blinkschaltung mit den µController, selbst die 
Nutzung von fertigen Bibliotheken ist weit weg von was ich als echtes 
Programmieren bezeichnen würde, sondern "nur" die Anwendung und 
hoffentlich das verstehen von Konzepten und einzelnen "Buchstaben" um 
beim ABC Beispiel zu bleiben.
Eine gute und Verständliche Erklärung wie Schleifen funktionieren, was 
die Idee hinter OOP ist und wie diese funktioniert usw. ist schon eine 
heftige Herausforderung die nur wenige Bücher (Autoren) wirklich 
leisten, aber selbst wenn das geleistet wird - Programmieren kann man 
trotrzdem noch lange nicht - aber genau das möchte man ja eigentlich 
lernen.

Oder um es auch ein Niveau zu bringen was jeder versteht aber auch 
leicht ins lächerliche laufen könnte:

Das Buch "Wie werde ich ein guter Liebhaber" - "Wie finde ich Freunde" 
mag zwar so manches theoretisch erklären können - nur die Versprechung 
kann einfach nicht erfüllt werden wenn anderes was wesentlich komplexer 
und teilweise unabänderlich ist, einfach nicht gegeben ist.
Und dieser komplexe und teilweise unabänderliche Hintergrund ist 
letztendlich auch bei der Programmierung gegeben - manche können es 
"einfach" so, andere (gerade die nach solchen Bücher schielen) reißen 
sich mehrere Beine aus sind extrem fleißig, stecken viel Energie in ihr 
Ziel aber beherrschen es letztendlich dann doch niemals so wie sie es 
sich wünschen.

Praktiker

von W. (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
>> "Programming in C" von Kochan.
>
> scheint auch uralt zu sein. Spielt das eine Rolle?

Das Buch ist von 2004 und somit 5 Jahre neuer als C99 ;)

von A. B. (Firma: uc++) (mitschreiberin)


Bewertung
0 lesenswert
nicht lesenswert
eventuell hilfreich:

CppCon 2015: Kate Gregory “Stop Teaching C"
******************************************
Youtube-Video "CppCon 2015: Kate Gregory “Stop Teaching C""

von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
Falls deine spätere Anwendung Microcontroller sind, dann lies mal das 
durch damit du weißt auf was du beim Einsatz von C++ achten solltest.
https://www.mikrocontroller.net/articles/C_vs_C%2B%2B

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
C als erste Programmiersprache
Vom Einsteiger zum Fortgeschrittenen

    Authors

    Manfred DausmannUlrich BröcklDominik SchoopJoachim Goll

hat jemand mal davon etwas gehört. ist schon in mehreren Auflagen 
erschienen

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
8. Auflage, mit Konzepten von C11

von Alexander S. (alesi)


Bewertung
0 lesenswert
nicht lesenswert
püpchen schrieb:
> C als erste Programmiersprache
> Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll

Kann ich empfehlen. Sehr solide und ausführlich. Auch didaktisch gut.

von püpchen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Alexander S. schrieb:
> püpchen schrieb:
>> C als erste Programmiersprache
>> Manfred Dausmann, Ulrich Bröckl, Dominik Schoop, Joachim Goll
>
> Kann ich empfehlen. Sehr solide und ausführlich. Auch didaktisch gut.

danke für die Rückmeldung. ich fange damit an

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.