Allgemeine Frage untersschied zwischen C und C++
-
ich hab mal gelesen das c++ nicht so oft abstürzt wie c
Solche Aussagen täuschen aber drüber hinweg, dass sich das alles im Kopf des Programmierers abspielt. Natürlich stürzt Brainfuck noch öfter ab.
-
Programmiersprachen stürzen nicht ab.
Programme stürzen ab.
-
Ich würde mal sagen, das endet mit Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber. Rhabarber Rhabarber? Rhabarber Rhabarber Rhabarber Rhabarber!!
-
hustbaer schrieb:
Programmiersprachen stürzen nicht ab.
Es sei denn, auf der Popularitäts-Skala
(schon mal im web gesucht nach: +stbasic +print +75.3 ?)
-
u_ser-l schrieb:
(schon mal im web gesucht nach: +stbasic +print +75.3 ?)
Das is ja geil
Was ähnliches gab's bei Turbo-Pascal wenn ich mich richtig erinnere, allerdings nicht mit einer so "kurzen" Zahl...
Oder war's Borland-C?
Hmmm...
-
bumi schrieb:
ich hab mal gelesen das c++ nicht so oft abstürzt wie c
das kannste dir als kurve vorstellen: bie C steigt die anzahl der absturzmöglichkeiten fast linear mit anzahl der codezeilen. vielleicht ist 'ne ganz leichte krümmung drin. bei C++ haste 'ne fiese zackenkurve, wie so'n aktienkurs. einige konstrukte mindern die absturzgefahr, andere steigern sie.
-
Das ist keine Eigenschaft der Sprache sondern eine des Programmierers.
-
knivil schrieb:
Das ist keine Eigenschaft der Sprache sondern eine des Programmierers.
beides. in C bestimmt der programmierer die steigung der kurve. in c++ beeinflusst er das rauschspektrum, etwa von 'wärmerauschen' bis '1/f^2' -rauschen.
-
+fricky schrieb:
knivil schrieb:
Das ist keine Eigenschaft der Sprache sondern eine des Programmierers.
beides. in C bestimmt der programmierer die steigung der kurve. in c++ beeinflusst er das rauschspektrum, etwa von 'wärmerauschen' bis '1/f^2' -rauschen.
dieses RAUSCHEN ist schlicht deine eigene dummheit.
wenn du die sprachmittel nicht zufällig aus der kiste greifst, rauscht da auch nix.
-
+fricky schrieb:
ich mit turbo-c++, damals auf 'nem 468'er. ich konnte schon ein bisschen C und fand's völlig geil, wie konstruktoren und destruktoren automatisch dran kamen.
Schon so lange dabei? Warum hast Du in der ganzen Zeit nichts dazugelernt?
-
volkard schrieb:
wenn du die sprachmittel nicht zufällig aus der kiste greifst, rauscht da auch nix.
naja, das ist nur so'ne verrückte theorie von mir, wie man sich das vielleicht vorstellen könnte. der anfänger produziert weisses rauschen, während der versierte progger sich einer immer glatteren kurve nähert.
volkard schrieb:
+fricky schrieb:
ich mit turbo-c++, damals auf 'nem 468'er. ich konnte schon ein bisschen C und fand's völlig geil, wie konstruktoren und destruktoren automatisch dran kamen.
Schon so lange dabei? Warum hast Du in der ganzen Zeit nichts dazugelernt?
ich hab's halt nicht weiter verfolgt. mich mit den 'martial arts' der c++ programmierung auseinanderzusetzen, war mir die mühe nicht wert. ich bin eher der ergebnisorientierte typ, und keiner, den man für völlig abgefahrene tricks einer bestimmten programmiersprache begeistern kann, wenn's anders einfacher geht.
-
hustbaer schrieb:
Das is ja geil
Was ähnliches gab's bei Turbo-Pascal wenn ich mich richtig erinnere, allerdings nicht mit einer so "kurzen" Zahl...
Oder war's Borland-C?
Hmmm...Naja, wenn die Runtime buggy ist, kann das durchaus passieren. Mein Bruder hatte 'nen ST und nach zwei Versuchen, mit ST-Basic was zu machen mußte GfA- Basic her.
Vermutlich meinst Du aber den unit CRT- Fehler von TP. Die mußte man includen, sonst keine Bildschirm- Ein/Ausgabe. Weil die Borlander aber zur Erstellung eines Softtimers auf die "geniale" Idee kamen, die Maschine mit einer Leerschleife auszubenchen, gab's auf schnelleren Prozessoren als 233er(MHz) einen Unterlauf bzw. Division by zero- Error == crash! Da das gleich zu Beginn stattfand, hatte man zunächst keine Möglichkeit der Umgehung, außer das in der Win-DOS- Box laufen zu lassen, hat aber auch nicht lange geholfen. Später wurde das Teil von anderen Leuten gepatcht.
Aber auch mit C- Compilern hatte ich so meinen Spaß. Ein frühes Keil MCS-51- C strotzte nur so vor Macken und IAR hat mich z.B. mit einem schweren Bug erstmal ewig sitzen lassen und dann für das "Upgrade" die Hand so weit aufgehalten, daß ich dankend verzichtet habe, weil das Projekt längst in ASM umgesetzt war.
Also, es liegt nicht nur an der Sprache und dem Programmierer, sondern auch an deren Implementation.
-
Momentan bin ich dabei C etwas intensiver zu lernen, wenn ich die Klausuren hinter mir habe, gehts weiter mit Java finde auch Java etwas leichter, da ich da schon etwas Erfahrung habe.
-
pointercrash() schrieb:
hustbaer schrieb:
Das is ja geil
Was ähnliches gab's bei Turbo-Pascal wenn ich mich richtig erinnere, allerdings nicht mit einer so "kurzen" Zahl...
Oder war's Borland-C?
Hmmm...Naja, wenn die Runtime buggy ist, kann das durchaus passieren. Mein Bruder hatte 'nen ST und nach zwei Versuchen, mit ST-Basic was zu machen mußte GfA- Basic her.
Vermutlich meinst Du aber den unit CRT- Fehler von TP. Die mußte man includen, sonst keine Bildschirm- Ein/Ausgabe. Weil die Borlander aber zur Erstellung eines Softtimers auf die "geniale" Idee kamen, die Maschine mit einer Leerschleife auszubenchen, gab's auf schnelleren Prozessoren als 233er(MHz) einen Unterlauf bzw. Division by zero- Error == crash! Da das gleich zu Beginn stattfand, hatte man zunächst keine Möglichkeit der Umgehung, außer das in der Win-DOS- Box laufen zu lassen, hat aber auch nicht lange geholfen. Später wurde das Teil von anderen Leuten gepatcht.
Aber auch mit C- Compilern hatte ich so meinen Spaß. Ein frühes Keil MCS-51- C strotzte nur so vor Macken und IAR hat mich z.B. mit einem schweren Bug erstmal ewig sitzen lassen und dann für das "Upgrade" die Hand so weit aufgehalten, daß ich dankend verzichtet habe, weil das Projekt längst in ASM umgesetzt war.
Also, es liegt nicht nur an der Sprache und dem Programmierer, sondern auch an deren Implementation.Nönö, das war schon auch sowas ala "printf("%f", bestimmterWert)" -> Crash.
Ziemlich bizarr.
Bin mir jetzt fast sicher dass dass Borland C war, und dass die Funktion printf war. Naja, egalBTW: der "DICE C" am Amiga war lustig (=extrem buggy). Dafür war der wenigstens gratis. Watcom C/C++ hat auch immer wieder lustige Sachen gemacht. Und nichtmal MSVC 9 hat einen komplett fehlerfreien Code-Generator. Leider
Bin aber bei MSVC 6+ niemehr selbst über einen Fehler gestolpert, d.h. die Situationen in denen die falschen Code erzeugen sind gottseidank sehr speziell, und kommen nur selten vor.
-
^^ zu buggy compilern: http://www.imagecraft.com/ (der icc12) hat einmal den code:
array[index++];
nicht richtig umgesetzt. musste icharray[index]; index++;
daraus machen, damit es ging. hab stundenlang versuch, nen fehler irgendwo im code zu finden. schrottcompiler sind schon allein deshalb nicht lustig, weil man immer zuerst bei sich selbst nach fehlern sucht. dass ich daraufhin diesen compiler nicht mehr verwendete (stattdessen den von freescale), versteht sich von selbst.
-
hustbaer schrieb:
Bin aber bei MSVC 6+ niemehr selbst über einen Fehler gestolpert, d.h. die Situationen in denen die falschen Code erzeugen sind gottseidank sehr speziell, und kommen nur selten vor.
Unter MSVC 6 bin ich noch recht häufig über Fehler gestolpert, vorwiegend aber deshalb weil ich beruflich erst mit diesem zu tun bekam, als ich persönlich schon mit dem 2003/2005 gearbeitet habe (Beginnt schon bei dem Gültigkeitsbereich von Zählervariablen in einer for-Schleife). Ab da ist mir glaube ich nur einmal unter dem 2003 noch ein Fehler direkt aufgefallen.
-
@asc:
Standard-non-compliance, Abstürze beim Compilieren etc. ja, das hat man beim VC6 ja dauernd.Ich meinte aber Fehler im Code-Generator/Optimizer, so dass er mir "silently" falschen Code ausspuckt.
Ich weiss schon dass der VC6 da auch Fehler hat, gibt ja z.B. extra nen komischen Workaround in boost::shared_ptr eben wegen einem VC6 Codegenerator/Optimizer-Bug, aber selbst drübergestolpert bin ich wie gesagt noch nie.
-
abros schrieb:
Momentan bin ich dabei C etwas intensiver zu lernen, wenn ich die Klausuren hinter mir habe, gehts weiter mit Java finde auch Java etwas leichter, da ich da schon etwas Erfahrung habe.
jedenfalls sparst du so den fruchtlosen umweg über c++. du hattest in deinem ersten posting hardware-programmierung erwähnt - das geht nicht mit Java (bevor jetzt einige meckern werden: ich meine 'direkte hardware-programmierung', ohne irgendwelche libraries usw. zu benutzen).
-
+fricky schrieb:
kennt nicht einer ein brauchbares smalltalk-system für windows, gleich mit IDE dabei und so?
IBMs VisualAge SmallTalk, aber das ist Enterprise Software …
-
Fricky wollte ja nicht gleich viel Geld ausgeben.
Obendrein hab' ich gegen IBM- Compiler so meine Vorbehalte. Ich hab' mal bei einer Promo- Aktion IBMs Visual Age for C++ und Visual Age for Basic gekauft. Das Zeug war gemäß IBM- Nomenklatur ("it's not a bug, ...") so "fully featured", daß man damit gar nichts anfangen konnte
. Besonders die C++ - IDE hatte die unpraktische Eigenschaft, sich immer wieder mal die komplette Projektdatenbank zu shreddern und dann abzustürzen
.
Auch das Basic hatte jede Menge Macken und war so entsetzlich langsam, daß MS VB3 daneben fast rasend schnell wirkte. Angeblich war VA4Basic übrigens in Smalltalk geschrieben, ich kann aber nicht beschwören, daß das stimmt.
Also, diese Promo- Aktion war eher so abschreckend, daß ich jegliches Interesse an IBM- Zeugs verloren habe. Später gab's dann zwar Patches, die fast so groß wie die Originalpakete waren, aber da hatte ich nichtmal mehr Lust, sie einzuspielen. Ich weiß nicht, ob sich das allgemein auf IBM- Zeugs übertragen läßt, aber die zwei Pakete waren definitiv Vollscheißdreck (sorry, finde keine freundlichere Bezeichnung, die der Produktqualität angemessen wäre).