Coding Styles Horror
-
;fricky schrieb:
^^für hexziffern ist die array-methode gut, wegen der lücke zwischen '9' und 'a'.
ansonsten natürlich: #define to_char(x) ('0'+(x))
Oder
return '0'+x;
Habt ihr in C noch keine optimierende Compiler? Doch, die habt ihr, da bin ich ganz sicher.
Im Übrigen war#define to_char(x) ('0'+(x))
natürlich falsch.
Besser wäre, wenn man schon so weit in der Geschichte zurückgehen will,#define to_char(x) ((char)('0'+(x)))
-
volkard schrieb:
Im Übrigen war
#define to_char(x) ('0'+(x))
natürlich falsch.
nö, das geht schon so. ein cast würde z.b. beim codewarrior-compiler das tolle feature unterdrücken, dass eine warnung kommt, bei addition zweier konstanten, deren ergebnis nicht mehr in ein char passt.
statt cast vielleicht besser sowas:#define DECIMAL_DIGIT_TO_CHAR(x) ((x)>=0&&(x)<=9 ? '0'+(x) : -1)
-
Typen sind Dir egal.
-
volkard schrieb:
Typen sind Dir egal.
nicht wirklich, aber 'char' und 'int' sind schon ziemlich kompatibel, bis auf kleine unterschiede.
-
;fricky schrieb:
bis auf kleine unterschiede.
Und warum die ignorieren?
Es wird doch mit Sicherheit ein Kasper in einem weiteren Makro typeof oder sizeof benutzen. Zwing ihn doch nicht, die Doku zu lesen, das tut er eh nicht. Machs einfach richtig. to_char() sollte schon einen char liefern.
-
volkard schrieb:
Machs einfach richtig. to_char() sollte schon einen char liefern.
durch die abfrage 0<=x<=9 wird doch schon mieser input rausgefiltert. und diese '0' ist doch sowieso vom typ 'int', das stört sonst auch nicht.
char c = '0'; // <-- absolut ok so char c = (char)'0'; // <-- das macht kein mensch, würde aber zu diesem thread passen
-
Jetzt weiß ich endlich, warum Du die Objektorientierung nicht begreifst.
-
volkard schrieb:
Jetzt weiß ich endlich, warum Du die Objektorientierung nicht begreifst.
...und wirst mir bestimmt gleich wieder scott meyer's 'effective c++' nahelegen. *fg*
-
;fricky schrieb:
volkard schrieb:
Jetzt weiß ich endlich, warum Du die Objektorientierung nicht begreifst.
...und wirst mir bestimmt gleich wieder scott meyer's 'effective c++' nahelegen. *fg*
Nein. Dir fehlen dann vermutlich doch die nötigsten Grundlagen. Vielleicht solltest Du zunächst ein paar Jahrzehnte mit Logo und dann QBasic üben.
-
volkard schrieb:
Vielleicht solltest Du zunächst ein paar Jahrzehnte mit Logo und dann QBasic üben.
logo finde ich irgendwie toll. ich hatte mal'n atari-st, da war das drauf.
-
Verdammt, geht endlich schlafen ihr nerdigen Streithammel, es ist spät.
Echt jeder Thread wird hijacked.
-
die beiden sind eine echte bereicherung für dieses forum ohne die hätten wir wohl nur halb soviel spass.
-
volkard schrieb:
char inttochar(int u) { return u["0123456789"]; }
Kann mir wer erklaeren wieso diese Methode funktioniert? Einen Integer mit einem char* indizieren?
-
Blue-Tiger schrieb:
volkard schrieb:
char inttochar(int u) { return u["0123456789"]; }
Kann mir wer erklaeren wieso diese Methode funktioniert? Einen Integer mit einem char* indizieren?
weil a[b] definiert ist als *(a+b)
also b[a] definiert als *(b+a)
und a+b==b+a
-
*patsch* klar!
Thx
-
bin grade sprachlos
# for(int i=0; i < 9; i++) { # int valor = 0; # if(i == 0) { # valor = 1; # } else if(i == 1) { # valor = 2; # } else if(i == 2) { # valor = 4; # } else if(i == 3) { # valor = 8; # } else if(i == 4) { # valor = 16; # } else if(i == 5) { # valor = 32; # } else if(i == 6) { # valor = 64; # } else if(i == 7) { # valor = 128; # } else if(i == 8) { # valor = 255; # } # p.write(valor); # try { # Thread.sleep(500); # } catch (Exception e) {} # }
-
zu coding styles horror sag ich nur c++0x