C++ oder doch lieber C?
-
Unentschlossen schrieb:
TactX: Darf man fragen was du von Beruf machst?
Ich bin in der Endphase meines Studiums (Mechatronik/Elektrotechnik) und programmiere im Nebenjob µCs.
-
TactX schrieb:
...und programmiere im Nebenjob µCs.
das können ja nur avr's sein
-
net schrieb:
TactX schrieb:
...und programmiere im Nebenjob µCs.
das können ja nur avr's sein
Ähmmm, nein. Ich verstehe nicht was du mir damit sagen willst?
-
TactX schrieb:
Ähmmm, nein. Ich verstehe nicht was du mir damit sagen willst?
bist du nicht linux freak? das sind meines wissens die einzigen mcu's die man komfortabel von'ner linux-box beharken kann. für alles andere braucht man windoofs.
-
Nunja, ich sagte Nebenjob. Da kann man sich nicht raussuchen mit was man arbeitet
Außerdem bin ich z.Z. auch privat meistens mit Windows unterwegs.PS: Zur Zeit eher PICs *würg*
PPS: Der verwendete Compiler rennt übrigens auch unter Linux
-
Da du in deinem Ausgangspost schreibst, daß du dich für richtige Programmierung interessierst (Kernel, Treiber etc.), solltest du C lernen. C# und irgendwelche Skriptsprachen sind ja gut und schön, werden dir aber bei sowas wenig nützen. Ich hab mich für den Oldschool Weg des C Hackers entschieden und habe es nie bereut.
-
TactX schrieb:
Außerdem bin ich z.Z. auch privat meistens mit Windows unterwegs.
ja, irgendwann kommt jeder auf den rechten weg
TactX schrieb:
PPS: Der verwendete Compiler rennt übrigens auch unter Linux
es gibt viele portierungen von gcc's und lcc's die unter linux laufen, aber die erzeugen oft minderwertigen code (zu gross, zu langsam, fehlerhaft). und man muss oft mit makefiles rumfummeln...aber richtig schlimm wird's erst beim debuggen oder downloads zum target. *foobar*
-
net schrieb:
es gibt viele portierungen von gcc's und lcc's die unter linux laufen, aber die erzeugen oft minderwertigen code (zu gross, zu langsam, fehlerhaft). und man muss oft mit makefiles rumfummeln...aber richtig schlimm wird's erst beim debuggen oder downloads zum target. *foobar*
Also mein Compiler ist eigentlich ziemlich gut. Hat bisher keine Probleme gemacht und optimiert imho ordentlich.
Nebenfrage: Hast du schonmal mit NEC µCs gearbeitet? Wenn ja, taugen die? (Design, Manuals, Tools)
-
TactX schrieb:
Also mein Compiler ist eigentlich ziemlich gut. Hat bisher keine Probleme gemacht und optimiert imho ordentlich.
aha, ist aber ein kommerzielles tool, kein gcc...
TactX schrieb:
Nebenfrage: Hast du schonmal mit NEC µCs gearbeitet? Wenn ja, taugen die? (Design, Manuals, Tools)
ja, 2 mal hatte ich mit 'nem nec v850 zu tun. einmal eine komplette software für so'n bedienterminal mit funkverbindung zum pc und grafikausgabe auf 'nem tft-bilschirm. das andere mal meinen selbstgemachten tcp/ip stack portiert in eine art gsm-modul mit eCos als betriebssystem.
der nec v850 hat 'ne 32bit risc cpu drin und dsp-ähnliche features wie hardware-multiplikation (a*b in einem taktzyklus). einziger nachteil: 32bit zugriffe gehen nur an durch 4 teilbare adressen, 16 bit zugriffe nur an gerade adressen. in allen anderen fällen: bus error.
für ersteres hab' ich den greenhills compiler genommen (sehr gut, erkennt z.b. misaligned zugriffe und baut dementsprechend den code um)
für's andere musste der gcc herhalten (hersteller des moduls hat das vorgeschrieben wegen des blöden ecos da drin). der code den der gcc erzeugt ist ungefähr 1.5 mal so gross wie der vom greenhills. debuggen und downloads ging bei beiden nur über die serielle - ätzend. es gibt aber auch v8xx-typen mit jtag schnittstelle...guckst du:
http://www.ee.nec.de/_pdf/U12893EE3V0PL00.PDF
http://www.ee.nec.de/news/09_news_archive_2003/documents/V850EMA3_D_2003_01_99.pdfirgendwo bei google findeste sicher noch ein programmer's manual
-
Der Sprachumfang von C ist klein und zugleich kannst Du ALLES mit C programmieren. Die Theorie von C lernst Du in wenigen Wochen komplett. Du könntest dann zum Beispiel Grafik mit der SDL-Bibliothek hinzunehmen und schon richtig coole Projekte realisieren. Natürlich dauert es auch mit C lange und braucht einfach Zeit und Erfahrung, um die mörderischen Fallstricke zu erkennen, die C so tricky machen.
Mit einem guten Basiswissen in C liegt Du auf alle Fälle nicht falsch, wenn es um Linux und auch um berufliche Chancen geht. C ist und bleibt eine Grundvoraussetzung für jeden IT-Experten.
C++ ist um mehrere Dimensionen abstrakter. Die objektorientierte Programmierung in C++ erfordert neben den Grundelementen der herkömmlichen Programmierung zusätzlich ein völlig neues Denken beim Grundaufbau und dem Design von Programmen. Mir hat es sehr geholfen, zuerst mit C Erfahrungen zu sammeln, ohne die Anforderungen der abstrakten Sprachelemente zusätzlich zu lernen. Danach war es für mich viel einfacher und ich konnte die weiteren Lerninhalte besser verarbeiten. Das Lernen von C++ bis zur professionellen Anwendung wird oft unterschätzt. Bücher, die C++ in 21 Tagen versprechen, gehören verboten. Rechne eher ein Jahr für das Basiswissen in C++ und nochmal x Jahre für die Routine.
Der "Oldschool Weg des C Hackers" zahlt sich langfristig aus. Vor allem wenn Du flexibel und geduldig genug bist. C++ ist nicht C. Du lernst zwei Sprachen, das muss Dir von Anfang an bewusst sein.