URL: https://www.overclockers.at/coding-stuff/lustige_und_interessante_code-fragmente_55591/page_1 - zur Vollversion wechseln!
postet hier (real-world) code-fragmente die euch schon mal untergekommen sind, wo man sich entweder an die stirn greift oder ordentlich ins grübeln kommt.
ein stück lustigen codes aus einer gekauften C library für PIC µController:
Code:#define FALSE 0 #define TRUE !0
Das ist völlig legaler C-Code!Code:register n = (count + 7) / 8; /* count > 0 assumed */ switch (count % 8) { case 0: do { *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; } while (--n > 0); }
ich check nicht ab was die do-while schleife macht ...
vertipper wie "pirate" statt private sind auch ganz lustig und ein guter indikator dafür, dass man zu wenig kaffee intus hat
Zitat von atroxDas ist völlig legaler C-Code!
Was echtes von mir (den Kommentar hat ein Kollege hinzugefügt ):
Code:// Get last day of month UINT XpLastDayOfMonth(int y, int m) { // abandon all hope ye who enters here !! return 30 + ((m^(m>>3))&1) - ((m==2) << (XpIsLeapYear(y) ? 1 : 0)); }
echo("hello world");
Noch ein nettes (nicht von mir):
Code:#define SWAP( x , y ) ((x) ^= (y) ^= (x) ^= (y))
Code:#define ever ( ; ; )
Zitat von atroxDas ist völlig legaler C-Code!Code:register n = (count + 7) / 8; /* count > 0 assumed */ switch (count % 8) { case 0: do { *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; } while (--n > 0); }
ist nicht von mir - es heißt "Duff's Device" und wurde 1983 erfunden.ZitatDas ist völlig legaler C-Code!
was ich daran krank finde, ist dass hier nicht wie normal eine verschachtelte struktur ist, sondern eine irgendwie miteinander vermixte - das is krank - einfach nur krank, und jetzt hab ich noch einen grund, warum mir 'c' nicht gefällt, ich mein da wird mir ja schlecht dabei...Zitat von atroxist nicht von mir - es heißt "Duff's Device" und wurde 1983 erfunden.
dieses spezielle code-beispiel kopiert einfach nur bytes sequentiell auf einen io-port (bzw eine einzelne speicherstelle) - es dient aber zur demonstration, daß man mittels switch/case an jeder beliebigen stelle einer eines anderen c-blocks (in diesem fall while) einsteigen kann. das funktioniert deshalb, weil am ende eines case-blockes in c nicht automatisch ein break; stattfindet.
diese technik läßt sich nicht nur zum erhöhen der geschwindigkeit (wie im fall von Tom Duff @ Lucasarts (daher der name!)) verwenden, aber zb auch für daten die nicht genau ein vielfaches einer blockgröße entsprechen (überhang-bytes).. und sicher vieles mehr.
Zitat Tom Duff: Many people have said that the worst feature of C is that switches don't break automatically before each case label. This code forms some sort of argument in that debate, but I'm not sure whether it's for or against.
Zitat von watchoutwas ich daran krank finde, ist dass hier nicht wie normal eine verschachtelte struktur ist, sondern eine irgendwie miteinander vermixte - das is krank - einfach nur krank, und jetzt hab ich noch einen grund, warum mir 'c' nicht gefällt, ich mein da wird mir ja schlecht dabei...
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025