Coding Styles Horror
-
Etwas anonymisiert, aber so in etwa sah der Code aus den ich neulich gefunden habe:
for (int i=0; i < 10000; i++) { grosses_array_mit_10000_eintraegen_A[i]=i; } for (int i=0; i < 10000; i++) { grosses_array_mit_10000_eintraegen_B[i]=i; } for (int i=0; i < 10000; i++) { grosses_array_mit_10000_eintraegen_C[i]=i; } for (int i=0; i < 10000; i++) { grosses_array_mit_10000_eintraegen_D[i]=i; } for (int i=0; i < 10000; i++) { grosses_array_mit_10000_eintraegen_E[i]=i; } for (int i=0; i < 10000; i++) { grosses_array_mit_10000_eintraegen_F[i]=i; }
Das war übrigens innerhalb eines zeitkritischen Loops.
-
bool b = irgendWas(); switch(b) { case true: doA(); break; case false: doB(); break; default: doC(); break; }
-
int a = 1; printf ("%d %d\n", a, a++);
-
Von einem "erfahrenen" C#-Entwickler:
object obj = reader["GUID"]; // Anmerkung: das object ist vom Type Guid Guid guid = new Guid(obj.ToString());
-
#include <someclass.h> short foo() { short rc = RC_GOOD; //rc fuer return code Someclass* pSc = NULL; if (!pSc) //könnte ja sein dass die Heinzelmännchen da waren... { pSc = new Someclass(); } if (!pSc) //oder dass new plötzlich wieder im Jahr 1993 ist { rc = RC_FAIL; //setzen wir sicherheitshalber den returncode return RC_FAIL; //weil wir ihn eh nicht zurückgeben! } if (rc != RC_FAIL) //wie auch immer das hier RC_FAIL sein könnte { /* ... */ // arbeite mit pSc } return rc; }
Und das laufend. *wein*
-
^^...und das 'delete' fehlt auch noch.
pumuckl schrieb:
Und das laufend. *wein*
von einer person?
-
pumuckl schrieb:
#include <someclass.h> short foo() { short rc = RC_GOOD; //rc fuer return code Someclass* pSc = NULL; if (!pSc) //könnte ja sein dass die Heinzelmännchen da waren... { pSc = new Someclass(); } if (!pSc) //oder dass new plötzlich wieder im Jahr 1993 ist { rc = RC_FAIL; //setzen wir sicherheitshalber den returncode return RC_FAIL; //weil wir ihn eh nicht zurückgeben! } if (rc != RC_FAIL) //wie auch immer das hier RC_FAIL sein könnte { /* ... */ // arbeite mit pSc } return rc; }
Wenn die Kommentare auchnoch so im Code wären, dann wäre es der beste Code aller Zeiten.
-
Zumindest tut dieser COde vermutlich exakt das, was er soll
Heinzelmännchen-Safe
-
ich tippe darauf das der code staendig refactort wurde - da ne zeile geaendert - dann da - (ah da kann gleich ein return hin) und am ende war er so
aber echt nett an zu sehen #gg
-
dazu fällt mir zb. if(!(buf=malloc(..))) exit(1); ein... in einem C++ constructor
da hab ich lieber Heinzelmännchen.
-
DrGreenthumb schrieb:
dazu fällt mir zb. if(!(buf=malloc(..))) exit(1); ein... in einem C++ constructor
da hab ich lieber Heinzelmännchen.
exits in Code von Bibliotheken hab ich auch ein Paar mal gesehen. Grausam sowas...
-
zwutz schrieb:
#ifndef RANDOMCLASS_H #define RANDOMCLASS_H using namespace std; class RandomClass { ... }; #endif
derartiges findet sich in einigen sehr oft verwendeten Bibliotheken unserer Software
`
na und? normal, wa.
-
hääääh? schrieb:
na und? normal, wa.
using namespace im HEADER-File.
-
char inttochar(int u) { if(u==0){return '0';} if(u==1){return '1';} if(u==2){return '2';} if(u==3){return '3';} if(u==4){return '4';} if(u==5){return '5';} if(u==6){return '6';} if(u==7){return '7';} if(u==8){return '8';} if(u==9){return '9';} } int chartoint(char v) { if(v=='0'){return 0;} if(v=='1'){return 1;} if(v=='2'){return 2;} if(v=='3'){return 3;} if(v=='4'){return 4;} if(v=='5'){return 5;} if(v=='6'){return 6;} if(v=='7'){return 7;} if(v=='8'){return 8;} if(v=='9'){return 9;} }
Da hatte wohl jemand nicht viel Ahnung von der ASCII Tabelle
-
Nachdenken! schrieb:
char inttochar(int u) { if(u==0){return '0';} if(u==1){return '1';} if(u==2){return '2';} if(u==3){return '3';} if(u==4){return '4';} if(u==5){return '5';} if(u==6){return '6';} if(u==7){return '7';} if(u==8){return '8';} if(u==9){return '9';} } int chartoint(char v) { if(v=='0'){return 0;} if(v=='1'){return 1;} if(v=='2'){return 2;} if(v=='3'){return 3;} if(v=='4'){return 4;} if(v=='5'){return 5;} if(v=='6'){return 6;} if(v=='7'){return 7;} if(v=='8'){return 8;} if(v=='9'){return 9;} }
Da hatte wohl jemand nicht viel Ahnung von der ASCII Tabelle
Oder er hatte Alien OS 2.0 das hat keine ASCII Tabelle.
-
Besser mieser und gehackter Code aber die Anwendung geht, als Theoretiker, die den ganzen Tag nur über Konstrukte nachdenken und letztlich nix schaffen.
-
RealistX schrieb:
Theoretiker, die den ganzen Tag nur über Konstrukte nachdenken und letztlich nix schaffen.
Hab ich noch nie einen gesehen.
-
Nachdenken! schrieb:
char inttochar(int u) { if(u==0){return '0';} if(u==1){return '1';} if(u==2){return '2';} if(u==3){return '3';} if(u==4){return '4';} if(u==5){return '5';} if(u==6){return '6';} if(u==7){return '7';} if(u==8){return '8';} if(u==9){return '9';} } int chartoint(char v) { if(v=='0'){return 0;} if(v=='1'){return 1;} if(v=='2'){return 2;} if(v=='3'){return 3;} if(v=='4'){return 4;} if(v=='5'){return 5;} if(v=='6'){return 6;} if(v=='7'){return 7;} if(v=='8'){return 8;} if(v=='9'){return 9;} }
Da hatte wohl jemand nicht viel Ahnung von der ASCII Tabelle
Naja, das ist die portabelste Version dieser Funktionen. Sie funktioniert auf beliebigen Architekturen die char und int unterstützen...
-
µµµµønsŧS schrieb:
Naja, das ist die portabelste Version dieser Funktionen. Sie funktioniert auf beliebigen Architekturen die char und int unterstützen...
Außer natürlich, es würde im Sprachstandard stehen, daß der Zeichensatz die Ziffern von 0 bos 9 aufeinandefolögfend unterzubringen hat.
-
Wäre dann ein switch/case-Konstrukt nicht immer noch vorzuziehen?