Funktionsaufruf mit Zeigerinkrement
-
hi,
sollte man sowas lieber vermeiden und variante 2 bevorzugen?
[cpp]
typedef unsigned char u_char;
typedef unsigned short u_short;template <>
inline u_short MakeShort(u_char High, u_char Low)
{
return (((u_short) Low) | (((u_short) High) << 8));
}void BlahFun(u_char *Buffer)
{
Buffer--;// 1. Variante (Low und High sind hier vertauscht?)
*u_short v = MakeShort(*++Buffer, ++Buffer);// 2. Variante
// u_char low = ++Buffer;
// u_short v = LowByte + (++Buffer << 8);
}
[/cpp]
-
Da die Reihenfolge der Argumentauswertung unspezifiziert ist und von Compiler zu Compiler schwanken kann, sollte man sowas definitiv sein lassen.
-
also entweder eine schöne funktion nehmen und falsch aufrufen oder keine funktion nehmen, leut's, meine vorurteile gegen borland-user wollen einfach nicht abnehmen.
-
Es gibt auch leut's die Borland benutzen und Programmieren können.
(Dank des Volkards C++-Kurs
)
Wollte ich nur mal gesagt haben...
-
volkard schrieb:
also entweder eine schöne funktion nehmen und falsch aufrufen oder keine funktion nehmen, leut's, meine vorurteile gegen borland-user wollen einfach nicht abnehmen.
Wie darf man das verstehen? Soll das eine Anspielung auf Properties sein, oder die Behauptung, Borland-User kämen nicht auf bessere Ideen?
Es ist mir bekannt, das Borlands IDEs so manchen ganz schnell zum selbst erklärten Profi machen, doch das heißt nicht, daß man sie nicht sinnvoll und produktiv einsetzen könnte - wenn es sich vermeiden läßt, möchte ich mich nicht mit den MFC, .NET oder einer sperrigen GUI-Bibliothek herumschlagen müssen. Auch mit den Properties kann man sehr gut leben.
Ohne einen Flamewar an unangebrachter Stelle starten zu wollen: Ich halte (wirklich geübte) Borland-User für klüger als MFC (etc.)-Benutzer, da sie ihre Zeit nicht mit den Standardaufgaben der GUI-Konstruktion verschwenden, sondern sich auf den eigentlichen Programminhalt konzentrieren.
Könnte allerdings auch sein, daß dich der Neid zu so einem Spruch getrieben hat...
Moritz
-
audacia schrieb:
Ohne einen Flamewar an unangebrachter Stelle starten zu wollen: Ich halte (wirklich geübte) Borland-User für klüger als MFC (etc.)-Benutzer, da sie ihre Zeit nicht mit den Standardaufgaben der GUI-Konstruktion verschwenden, sondern sich auf den eigentlichen Programminhalt konzentrieren.
Dann bist du dumm. Sorry. Ist aber so.
Warum volkard darauf kommt ist einfach zu erklären: viele Leute lernen C++ mit dem BCB. Und das heisst: sie lernen kein C++, glauben aber sie würden es tun. Der BCB ist eine Anfängerfalle und deshalb gibt es viele Vorurteile gegenüber Borland Usern, weil es dort eben so viele Anfänger gibt.
Selbiges gilt übrigens auch für Visual Basic und auch PHP. Bei Java hat sich das zum Glück aufgehört, da war aber auch mal ein Trend in diese Richtung zu erkennen...
Welche IDE man verwendet wenn man sich auskennt ist nahezu egal. Es gibt Leute die mit Emacs produktiver sind als ich mit dem VS, aber es gibt auch VS User die nicht so produktiv sind wie ich mit nem guten Texteditor
Hängt alles nur davon ab wie gut man das Tool beherrscht. Wenn es ein 'über'-Tool geben würde, dann würden wohl alle profis nur das verwenden, oder? Da aber jedes Tool vor und nachteile hat, verwendet jeder etwas anderes...
PS: dir ist schon klar, dass die VCL Tod ist...?
-
Shade Of Mine schrieb:
Dann bist du dumm. Sorry. Ist aber so.
Schon ist der Flamewar ausgebrochen...
Warum volkard darauf kommt ist einfach zu erklären: viele Leute lernen C++ mit dem BCB. Und das heisst: sie lernen kein C++, glauben aber sie würden es tun. Der BCB ist eine Anfängerfalle und deshalb gibt es viele Vorurteile gegenüber Borland Usern, weil es dort eben so viele Anfänger gibt.
Ich glaube fast, das in meinem Posting schon erwähnt zu haben...
Welche IDE man verwendet wenn man sich auskennt ist nahezu egal. Es gibt Leute die mit Emacs produktiver sind als ich mit dem VS, aber es gibt auch VS User die nicht so produktiv sind wie ich mit nem guten Texteditor
Hängt alles nur davon ab wie gut man das Tool beherrscht. Wenn es ein 'über'-Tool geben würde, dann würden wohl alle profis nur das verwenden, oder? Da aber jedes Tool vor und nachteile hat, verwendet jeder etwas anderes...
Nix dagegen, doch der Vorteil von C++Builder ist eindeutig die Produktivität im GUI-Bereich.
PS: dir ist schon klar, dass die VCL Tod ist...?
Tod der Plattformunabhängigkeit? Tod des C++-Standards? Was meinst du?
Oder meintest du "tot"? Dann siehe unten...
-
Na dass die VCL nicht mehr gepflegt und weiterentwickelt wird.
-
Michael E. schrieb:
Na dass die VCL nicht mehr gepflegt und weiterentwickelt wird.
*widersprech*
-
Bashar schrieb:
Da die Reihenfolge der Argumentauswertung unspezifiziert ist und von Compiler zu Compiler schwanken kann, sollte man sowas definitiv sein lassen.
In diesem Beispiel ist das Verhalten mal wieder nicht nur unspezifiziert sondern undefinert. Es kann also nicht nur jedesmal was anderes rauskommen, es können sogar Nasenkobolde fliegen
Zwischen der Auswertung der einzelnen Funktionsparameter (deren Reihenfolge unspezifziert ist) liegt im Allgemeinen kein Sequence-Point. Hier wird buffer also zweimal geändert ohne einen zwischenzeitlichen Sequence-Point und das führt zu undefiniertem Verhalten.