Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

C-Buch für Fortgeschrittene

msk16 / 8 Antworten / Baumansicht Nickles

Hallo


Ich habe das Buch "Jetzt lerne ich C" durchgemacht (dort sind aber nicht alle Themen behandelt worden, will diese Sprache aber komplett lernen!).  Ich will jetzt erst einmal Windows-Anwendungen schreiben und will mir den neuen Petzold bestellen.                                        


Jetzt meine Frage: "Brauche ich noch ein Buch, dass an das andere anschließt, oder reicht der Petzold? Und wenn ja, welches?


Danke

bei Antwort benachrichtigen
thomas woelfer msk16 „C-Buch für Fortgeschrittene“
Optionen

grundsaetzlich reicht der petzold wenn man fuer windows in c programmieren will - aber das will man eigentlich nicht... :)

tendenziell wuerde ich dazu c++ empfehlen (zumindest fuer die anwendungprogrammierung sofern die anwendung auch groesser werden kann) - und dazu ist der 'standard' weg momentan die verwendung von mfc. dazu steht aber nix im petzold... der kuemmert sich _nur_ um die 'c' api.

WM_FYI
thomas woelfer

this posting contains no tpyos.
bei Antwort benachrichtigen
msk16 thomas woelfer „grundsaetzlich reicht der petzold wenn man fuer windows in c programmieren will...“
Optionen

Im Petzold Vorwort steht, dass C die beste Sprache ist, wenn man mit der API in Windows pogrammieren will. Ich habe auch schon ein Buch über C++ durchgemacht, hab aber dann das Vorwort v.P gelesen. Ebenfalls hält Petzold nichts von der MFC und das C++ zu langsam und zu komplex ist. Was soll ich jetzt machen? C lernen und den P. benutzen oder C++ lernen und die MFC nehmen?

Danke

bei Antwort benachrichtigen
thomas woelfer msk16 „Im Petzold Vorwort steht, dass C die beste Sprache ist, wenn man mit der API in...“
Optionen

c ist die beste sprache wenn man mit der api von windows programmieren will. das will man aber nicht. analog: assembler war die _einzige_ sprache die man verwenden konnten wenn man die api von ms-dos verwenden wollte. das wollte man aber nicht - man hat 'c' genommen.

genauso ist das bei c und c++ fuer windows. kein normaler mensch schreibt allen ernstes ein windows programm mit 'c' unter direkter verwendung der api. statt dessen verwendet man eine klassenbibliothek (z.b. mfc) und c++. das gilt fuer praktisch alle groesseren und viele kleinere windows-anwendungen.

was petzold von c++ haelt ist mir - ehrlich gesagt - egal. es gibt nicht den geringsten grund weshalb eine anwendung in c++ langsamer sein sollte als in c und wer was anderes behauptet weiss eben nicht was er sagt. das c++ komplexer ist als c ist sicherlich richtig, denn es kann nunmal mehr. :)

das mfc nicht die 'beste' aller klassenbibliotheken und das das darin befindliche framework nicht das beste aller frameworks ist, darueber braucht man nicht zu diskutieren: das stimmt. das aendert aber nichts an der tatsache das es gut genug fuer eine extrem grosse menge an anwendungen ist und auch nicht daran das so gut wie alles damit programmiert wird - zumindest, wenn es fuer windows und mit c++ programmiert wird.

c lernen ist sicherlich eine gute idee und als vorraussetzung fuer c++ perfekt - aber eben nicht anhand von windows programmen. ich denke das es sinnvoll ist c mit hilfe von kommandozeilenprogrammen zu lernen, und dann c++ mit hilfe von mfc anhand von windows programmen zu lernen.

WM_GOODLUCK
thomas woelfer

this posting contains no tpyos.
bei Antwort benachrichtigen
msk16 thomas woelfer „c ist die beste sprache wenn man mit der api von windows programmieren will. das...“
Optionen

1.) D.h., dass z.B. der IE, Visual Studio-Anwendungen oder Virtual
Dub alle in C++ und der MFC geschrieben sind?

2.) Wie ist es unter Linux/UNIX? Auch C++ oder bevorzugt C? Dort gibt
es ja keine API, oder? Mit was wird dort programmiert?

bei Antwort benachrichtigen
thomas woelfer msk16 „1. D.h., dass z.B. der IE, Visual Studio-Anwendungen oder Virtual Dub alle in C...“
Optionen

1) zumindest in c++, zumindest in grossen teilen. (ob das fuer virtual dub auch gilt kann ich nicht sagen, das habe ich nicht.) sowas kann man relativ leicht mit dem 'depends' tool checken das bei vc6 dabei ist.

2) auch unter linux werden natuerlich funktionen des betriebssystems fuer die anwendungsprogrammierung bereitgestellt - sonst koennte man ja keine anwendungen programmieren. m.a.w: natuerlich gibts da eine api - bzw. es gibt da eine ganze menge davon :)

tendenzielle wuerde ich vermute das alle groesseren linux programme ebenfalls mit c++ programmiert werden - aber das kann ich nicht verifizieren weil ich keine groesseren c++ programme unter linux habe. (von start office weiss ichs zufaellig, das liegt in diesem fall daran das der urspruengliche hersteller von star office auch mal eine 'portable' c++ klassenbibliothek hergestellt hat.)

WM_FYI
thomas woelfer

this posting contains no tpyos.
bei Antwort benachrichtigen
Zaphod thomas woelfer „1 zumindest in c , zumindest in grossen teilen. ob das fuer virtual dub auch...“
Optionen

Unter Linux werden viele Projekte noch unter C programmiert, i. d. Regel alle Programme, die das GIMP Toolkit verwenden (GNOME, GIMP etc.) KDE und andere grosse Applikationen werden in C++ programmiert, und viele kleinere, auch grafische Applikationen in Scriptsprachen wie Perl, Python oder Tcl/Tk ...
Gerade für GTK gibt es auch vielfältige Schnittstellen z. B. zu Perl und Phyton, so dass man nicht für jede Aufgabe gleich eine Hochsprache einsetzen muss.

bei Antwort benachrichtigen
thomas woelfer Zaphod „Unter Linux werden viele Projekte noch unter C programmiert, i. d. Regel alle...“
Optionen

danke :) wusste doch das das jemand richtig beantworten wuerde... :)

WM_THX

this posting contains no tpyos.
bei Antwort benachrichtigen
littlehelper msk16 „C-Buch für Fortgeschrittene“
Optionen

Kauf dir den Schinken von Petzold nicht!! Ich hab das Buch, mir gefällts nur mässig, werd auf C++ umsteigen, das taugt mehr. Die Beispiele sind zwar nicht schlecht, jedoch ist der rest des Buchs nicht wirklich interessant, ein Spagat aus Referenz und umfassender Beschreibung, wenn du z.B. einen Befehl nachschlagen willst und nur die Syntax brauchst, dann sucht man schon mal eine ganze Weile. Find zwar das C für Windows nicht schlecht ist, aber C++ ist einfach flexibler. Willst du aber Spiele Programmieren ist C dennoch die bessere Lösung.

MfG littlehelper

A computer lets you make more mistakes faster than any invention in human history - with the possible exceptions of handguns and tequila.
bei Antwort benachrichtigen