C und C++
-
ProgChild schrieb:
rüdiger schrieb:
Kann man alles mit C++ machen was man auch mit C machen kann?
C ist eine Untermenge von C++, siehe zB Wikipedia
C ist eine Untermenge vom C89-Standard. Der C99-Standard beinhaltet ein paar Kleinigkeiten, die in C++ nicht gehen. Die Compiler dafür sind aber ehr selten. Bei Microsoft bekommst du keine und der gcc ist (soweit ich weis) bei den VLAs noch nicht standard-konform.
Es ist ja auch keine richtige Untermenge, selbst bei C89 nicht. Aber die Genauigkeit sollte erst einmal reichen um es dem OP verständlich zu machen

(btw. GCC 4.2 hat glaube ich C99 VLAs)
-
Michael991 schrieb:
Sind diese Kleinigkeiten den relevant in größeren Projekten?
Wenn man sie in größeren Projekten benutzt, dann werden sie da wohl relevant sein, da ja ohne diese Kleinigkeiten das Programm nicht compiliert.
Michael991 schrieb:
Und hat cer C99 Standard dann wieder ein paar Kleinigkeiten die C++ hat und C99Standard nicht?
C++ hat mehr als nur ein paar Kleinigkeiten mehr zu bieten, als C99. Anders ausgedrückt. C++ hat mehr Features gegenüber C89, als C99 gegenüber C89.
-
Michael991 schrieb:
c++ ist ja auch u.a Objektorientiert (GUI erstellen) ist das auch C?
objektorientiertheit hat erstmal absolut nüsse mit "GUI erstellen" zu tun^^
und auch in C kannst du "objektorientiert programmieren" (aber kannst du im prinzip auch in asm). C++ stellt dir dafür aber (im gegensatz zu C) entsprechende mittel zur verfügung.btw windows ist wohl größtenteils in C geschrieben. soviel also zum thema GUI erstellen...
-
Ich bin dabei C ausgiebig zu lernen, will aber vllt auf c++ umsteigen, deswegen die Fragen
-
naja, wenn du schon C lernst, dann lern erstmal C und dann lern C++ oder Java oder C# (oder am besten gleich alle ;))
-
Naja wenn C++ besser ist könnte ich ja auf C++ umsteigen, ist ja kein Ding.
Und was will ich mit C# und Java?

-
rüdiger schrieb:
btw. GCC 4.2 hat glaube ich C99 VLAs
Ja, der 3.4 hatte die auch schon, aber hab irgendwo gelesen, die wären nicht Standardkonform. Habs selber noch nicht getestet.
-
Michael991 schrieb:
Naja wenn C++ besser ist könnte ich ja auf C++ umsteigen, ist ja kein Ding.
Und was will ich mit C# und Java?

Naja... Was heißt besser? C++ bietet die mehr Sprachfeatures, erfordert aber auch ein komplexeres denken, wenn man diese Sinnvoll einsetzten will.
-
ProgChild schrieb:
rüdiger schrieb:
btw. GCC 4.2 hat glaube ich C99 VLAs
Ja, der 3.4 hatte die auch schon, aber hab irgendwo gelesen, die wären nicht Standardkonform. Habs selber noch nicht getestet.
VLAs hat der GCC schon seit Ewigkeiten. Aber ich glaube in der Release-Liste vom 4.2er steht dass die VLAs nun C99 konform sind oder waren das die inlines. Hmm, bin mir nicht mehr sicher.
-
ProgChild schrieb:
Michael991 schrieb:
Naja wenn C++ besser ist könnte ich ja auf C++ umsteigen, ist ja kein Ding.
Und was will ich mit C# und Java?

Naja... Was heißt besser? C++ bietet die mehr Sprachfeatures, erfordert aber auch ein komplexeres denken, wenn man diese Sinnvoll einsetzten will.
kann man eigentlich auch C + C++ zusammen einsetzen, also mit beiden Sprachen ein Programm entwickeln?
-
ja
-
Michael991 schrieb:
kann man eigentlich auch C + C++ zusammen einsetzen, also mit beiden Sprachen ein Programm entwickeln?
Ja kann man. Du kannst mit dem C++-Schlüsselwort extern "C" C-Funktionen in C++ aufrufen und C++ funktionen für C verfügbar machen. Schöner ist es aber, C++ zu verwenden, meiner Meinung nach. Ich muss im Studium im moment alles mit C machen und hätte doch schon mal gerne C++

-
Wenn man beides beherscht sind eine also "keine Grenzen" mehr Gesetzt ein Programm zu entwickeln, man hat alles was man brauch?!
-
sagen wir mal ja.
wenn du C++ lernst, dann lernst du C im prinzip implizit mit
wenn du C schon kannst, dann kannst du einen (kleinen) teil von C++.
so einfach ist das.
-
C eignet sich besser für hardwarenahe Programmierung für Microcontroller etc.
weil C-Programme mit weniger Speicherplatz auskommen.
Mit C++ ist das meist noch nicht möglich, soviel ich weiss.Mit C++ kannst du Programme, bzw. Funktionen schreiben und in sogenannten Klassen abspeichern.
Diese können ihren Programmcode an andere Klassen "weitervererben".
Eine Klasse kann also Quellcode von einer oder sogar mehreren Klassen erben, das kann C nicht. ( Die Frage ist, ob man solche Spielereien braucht ).
Wie auch immer ist dies ein sehr interessanter Aspekt wie ich finde.
Mich hat das mal sehr interessiert, habe C++ gepaukt wie blöde und trotztem komme ich heute mit C völlig aus.Mit C++ hast du eine einfachere Speicherverwaltung, die weniger Fehleranfällig ist. ( Konstruktoren, Destruktoren, Smartpointer ).
Dann gibts da noch Templates, die STL und ach..blah und blubb...Bei größeren Programmen kann man bei C schon mal an die Grenze einer Krise kommen, wenn vor lauter Zeigern der Bildschirm langsam vor den Augen verschwimmt.

Ansonsten, einfach mal beides ausprobieren und dann weiter schauen.
dot schrieb:
naja, wenn du schon C lernst, dann lern erstmal C und dann lern C++ oder Java oder C# (oder am besten gleich alle ;))
Machst du das so ?
-
dot schrieb:
sagen wir mal ja.
wenn du C++ lernst, dann lernst du C im prinzip implizit mit
wenn du C schon kannst, dann kannst du einen (kleinen) teil von C++.
so einfach ist das.Also wäre es gut wenn ich C erst ein mal ausgiebiger lerne und DANN C++?
-
proggingmania schrieb:
C eignet sich besser für hardwarenahe Programmierung für Microcontroller etc.
weil C-Programme mit weniger Speicherplatz auskommen.
Mit C++ ist das meist noch nicht möglich, soviel ich weiss.Das halte ich für ein Gerücht, vor allem da C nährungsweise eine Untermenge von C++ ist...
Mit C++ kannst du Programme, bzw. Funktionen schreiben und in sogenannten Klassen abspeichern.
Diese können ihren Programmcode an andere Klassen "weitervererben".
Eine Klasse kann also Quellcode von einer oder sogar mehreren Klassen erben, das kann C nicht. ( Die Frage ist, ob man solche Spielereien braucht ).Klar kannst du so was auch in C machen. Schau dir Objective C an. Der Code der generiert wird ist reines C!
Bei größeren Programmen kann man bei C schon mal an die Grenze einer Krise kommen, wenn vor lauter Zeigern der Bildschirm langsam vor den Augen verschwimmt.

das liegt wohl eher an deinem Programmierstil :p
-
proggingmania schrieb:
Die Frage ist, ob man solche Spielereien braucht
fernsehen und radio braucht man auch nicht :p
Michael991 schrieb:
Also wäre es gut wenn ich C erst ein mal ausgiebiger lerne und DANN C++?
was ich damit sagen wollte ist:
es is total egal. lern programmieren

wenn du C++ lernst, dann hast du mit C keine probleme, wenn du C lernst kannst du immer noch C++ lernen, wenn du programmierern kannst, dann kannst du sowieso jede sprache recht schnell lernen.
-
dot schrieb:
btw windows ist wohl größtenteils in C geschrieben. soviel also zum thema GUI erstellen...
Nicht nur Windows, die meisten Betriebssysteme sind in ihrem Kern, bzw. zum größten Teil in C programmiert.
-
was ich damit sagen wollte ist:
es is total egal. lern programmieren
muss mich ja auf etwas spezialisieren
