C++ Dialektik
-
Hallo,
Gibt es eigentlich einen offiziellen Guide, wie man in C++ schreibt ?
In letzter Zeit musste ich sehr viele fremde Codezeilen lesen, um mir fiel auf, das fast jeder autor anders schreibt.
Am beliebtesten ist das Variieren der Position des "*" Operators. Da will wohl jeder seine persönliche Note mit einbringen
// so myPointer* p; // oder so myPointer *p; // oder so myPointer * p;
Desweiteren die Bezeichnung von Klassen Membern:
MyClass->EntwederSo(); MyClass->oderSo(); MyClass->oder_ganz_und_gar_anders(); MyClass->ODERGLEICHUNGARISCHENOTATION();
Es ist ungefähr so, als wenn es in Deutschland keine einheitliche Rechtschreibung gäbe und jeder "frei nach Schnauze" schreiben würde, was darin resultieren würde, das der Bayer den Brief vom sächsischen Bekannten nicht lesen könnte.
Falls ihr weitere Beispiele habt, immer her damit
.
-
Über Geschmack lässt sich eben nicht streiten...
-
Es ist ungefähr so, als wenn es in Deutschland keine einheitliche Rechtschreibung gäbe und jeder "frei nach Schnauze" schreiben würde,
Ich dachte das wäre genau so
-
Dialekt != Dialektik
-
Zu dem abschnitt mit den Zeigern moechte ich mal was kleines aus C von A-Z editieren:
C von A bis Z schrieb:
Mit dieser Schreibweise wird der gemachte Fehler deutlicher:
int *zeiger1,zeiger2;
Hier wurde nur ein Zeiger deklariert, was auch recht schnell zu sehen ist. Bei der nachfolgenden Schreubweise, ist der Fehler nicht mehr so schnell zu sehen:
int* zeiger1,zeiger2;
Ich denke daran muss man sich nicht unbedingt halten, doch hat der Autor von "C von A bis Z" schon irgendwie recht - finde ich zumindest!
-
Lyrix schrieb:
Ich denke daran muss man sich nicht unbedingt halten, doch hat der Autor von "C von A bis Z" schon irgendwie recht - finde ich zumindest!
und genau das ist das problem. viele c/c++-programmierer schauen doch in der tat in c-büchern nach, wie man c++ programmieren sollte.
natürlich sollte man in c++ lieber
int* zeiger1; int* zeiger2;
schreiben.
mein unterirdisches forschungslabor hat sogar herausgefunden, daß
int* zeiger1; int* zeiger2;
nur volkommen kann, wenn die beiden zeilen nur definitionen von attributen sind! als freistehende variablen kann man nur
int* zeiger1=eine Initialisiereung; int* zeiger2=eine andere Initialsisierung;
antreffen.
-
Mein Geheimlabor hat allerdings entdeckt, dass
int* foo = 0, bar = 0;
möglich ist, was natürlich als schlechter Stil einzuordnen ist.
-
hi volkard. in welcher stadt ist eigentlich dein forschungslabor?? kann ich dich mal besuchen kommen.
-
Ich glaub der hier schiesst den Vogel ab
-
Optimizer schrieb:
Mein Geheimlabor hat allerdings entdeckt, dass
int* foo = 0, bar = 0;
möglich ist, was natürlich als schlechter Stil einzuordnen ist.
ja, natürlich. es muß eben klar sein, daß man sowas nicht baut.
der stil, den man in einem bestimmten aspekt anschlagen sollte, hängt ganz stark von vielen anderen stil-entscheidungen ab. wenn man in C++ keine klassen verwendet und keine exceptions und viel goto und alle variablen am beginn der funktion deklariert, dann führen diese entscheidungen zwingend zur folgerung, daß man ungarische notation verwenden muss.
also es ist falsch, nur einen unwahrscheinlichen code zu zeigen und an ihm nachzuweisen, daß man so oder so programmieren sollte. sonst wäre es auch viel zu einfach und programmierstil wäre eine mathematische disziplin.
-
std::stack schrieb:
hi volkard. in welcher stadt ist eigentlich dein forschungslabor??
36381 schlüchtern
kann ich dich mal besuchen kommen.
ja. es ist gar kein geheimlabor, sondern ein unterirdisches labor. das hat was mit mietpreisen für normale und für kellerwohnungen zu tun.
-
yusha schrieb:
Ich glaub der hier schiesst den Vogel ab
Meine Güte der Contest heißt auch "The International Obfuscated C Code Contest"