The Daily WTF
-
SideWinder schrieb:
Dann wäre der Siegeszug von .NET wenigstens gewiss. Wieso soll ich etwas explizit hinschreiben wenn es implizit sowieso klar ist
Eben weil es bei C zu Missverstaendnissen kommen kann. Ein C++ oder Java Programmierer bekommt die Aufgabe, eine C-Library zu entwickeln (z.B. fuer JNI usw.) und wundert sich ueber die Ergebnisse. Ausserdem werden in einigen Umgebungen immer noch K&R-C-Compiler verwendet.
Das Normungskommitte hat fuer 2003er ISO C++ Standard die Abkehr vom C89 Standard beschlossen, und erfordert jetzt, dass C++ Programme mindestens dem C90 Standard folgen (siehe z.B. Annex C.2).
-
Power Off schrieb:
Das Normungskommitte hat fuer 2003er ISO C++ Standard die Abkehr vom C89 Standard beschlossen, und erfordert jetzt, dass C++ Programme mindestens dem C90 Standard folgen (siehe z.B. Annex C.2).
ISO C++ von 2003? C90?
-
Power Off schrieb:
Seit es erlaubt ist, schreibe ich immer "void" fuer leere Parameterlisten in C++. Das sagt ganz klar: Keine Parameter.
Sicher, und das ist auch viel einfacher als es gleich wegzulassen.
-
Power Off schrieb:
Ausserdem werden in einigen Umgebungen immer noch K&R-C-Compiler verwendet.
das argument zieht nicht. du müßtest auch templates meiden, weil es in c keine gibt.
-
Walli schrieb:
Sicher, und das ist auch viel einfacher als es gleich wegzulassen.
Fuer mich (und fuer andere sicher auch) ist es eine Verbesserung der Lesbarkeit. *schulterzuck*
-
Power Off schrieb:
Walli schrieb:
Sicher, und das ist auch viel einfacher als es gleich wegzulassen.
Fuer mich (und fuer andere sicher auch) ist es eine Verbesserung der Lesbarkeit. *schulterzuck*
ja ne is klar...
-
Power Off schrieb:
Walli schrieb:
Sicher, und das ist auch viel einfacher als es gleich wegzulassen.
Fuer mich (und fuer andere sicher auch) ist es eine Verbesserung der Lesbarkeit. *schulterzuck*
Ist für dich auch BEGIN/END lesbarer als {, }? Eventuell wechselst du besser zu Pascal
MfG SideWinder
-
SideWinder schrieb:
Ist für dich auch BEGIN/END lesbarer als {, }? Eventuell wechselst du besser zu Pascal
Pascal kann ich auch, aber das war kein Grund fuer mich,
#define BEGIN { #define END }
in jedes Programm zu schreiben!
-
Wäre aber wesentlich einfacher zu lesen. Ganz bestimmt
MfG SideWinder
-
ohman ihr habt problem. Steitet euch um solche Kleinigkeiten, wohl nichts besseres zu tun ?
Kann doch jeder schreiben wie er will, ob mit oder ohne void.
-
volkard schrieb:
Power Off schrieb:
Das nennt sich: Gekennzeichneter Boolescher Ausdruck.
das nennt sich Gekennzeichneter Müll.
ROFLMAO
Power Off schrieb:
Umgekehrt ist's viel schlimmer: Ein C++ Programmierer meint, C zu koennen, weil er ja C++ kann, und schreibt dann sowas
Keiner hat behauptet, dass C und C++ die gleiche Sprache ist. Wann lernen die Leute endlich mal, beide Sprachen strikter zu trennen.
Power Off schrieb:
Guck doch selber, hier ein paar Stichworte: AT&T 2.0 Standard, AT&T 3.0 Standard, CFront, alles prae-ANSI/ISO C++.
LOL. Bitte nur aktuelle ISO C++ Quellen.
Mir ist es übrgens egal, ob jemand 'foo()' oder 'foo(void)' schreibt. Da aber beides identisch ist, sehe ich nicht ein, warum ich mir mit Fall 2 zusätzlich Arbeit machen soll. Zudem finde ich, dass Fall 1 lesbarer ist. Tja, so verschieden sind halt die Geschmäcker...
-
Wegen dem "? true : false" nochmal...
Ich hab Power Off bei The Daily WTF gesehen.
http://www.thedailywtf.com/forums/45596/ShowPost.aspxAnd speaking of pointless code, John pulled this line of triply-redundant code from a Java production system that could be fairly easily simplified to ";".
isActive = (isActive == true) ? true : false;
Für mehr lesbaren Code und so.
-
Er hat sich schon auf Seite 4 dazu geäußert.
-
Hier kommen noch'n paar gute:
Then of course there's Jared M who was surprised to see how his former coworker (with "over 15 years experience in the industry") negated numbers ...
if (trx.Amount < 0) trx.Amount = Math.Abs(trx.Amount); else trx.Amount = Convert.ToDouble("-" + trx.Amount.ToString());
It seems everyone has their own way of finding a way to avoid multiplying numbers by -1. Shaun Katona's colleague demonstrates another YAWN (Yet Another Way to Negate) ...
int makeNegative( int n ) { int num; num = n - ( 2 * n ); return num; }
Response.Write LCase("SUBMIT ORDER")
IF (current_num - prev_num = current_num) THEN
-
Sgt. Nukem schrieb:
It seems everyone has their own way of finding a way to avoid multiplying numbers by -1. Shaun Katona's colleague demonstrates another YAWN (Yet Another Way to Negate) ...
int makeNegative( int n ) { int num; num = n - ( 2 * n ); return num; }
öhm mit -1 multipliziern?
was hat er denn gegenint makeNegative( int n ) { return -n; }
-
*plonk* *schild an sovok überreich*
MfG SideWinder
-
Sovok schrieb:
int makeNegative( int n ) { return -n; }
Ein schönes Beispiel für übermässiges Refactoring.
Um richtig zu machen müsste man noch auf 0 testen
int makeNegative( int n ) { int num = 0; if (n<0) num = abs(n); else { if (n>0) num = ( 0 - 1 ) * abs(n); else { if (n == 0) num = 0; } } return num; }
-
IF (current_num - prev_num = current_num) THEN
Was soll daran schlecht sein? Wenn es um floats geht, ist das eine nette Methode rauszufinden, ob "prev_num" im Vergleich zu "current_num" nicht etwas gar klein ist
-
JBeni schrieb:
IF (current_num - prev_num = current_num) THEN
Was soll daran schlecht sein? Wenn es um floats geht, ist das eine nette Methode rauszufinden, ob "prev_num" im Vergleich zu "current_num" nicht etwas gar klein ist
irre ich mich oder kann man den code ersetzen durch
if ( prev_num == 0 ) ...
-
JBeni schrieb:
Was soll daran schlecht sein?
Weil man dann gleich prüfen kann, ob prev_num gleich 0 ist.
JBeni schrieb:
Wenn es um floats geht, ist das eine nette Methode rauszufinden, ob "prev_num" im Vergleich zu "current_num" nicht etwas gar klein ist
Wenn du damit die Genauigkeit von Gleitkommazahlen meinst, dann macht man das aber anders und nicht mit Vergleich auf Gleichheit.