void doStuff(int count) { while(count --> 0) { fleh(); } }
This was later popularized by ECMAScript.
Node *left, *right; int childCount() { return !!left + !!right; }
This was found in the 2004 leaked Windows sources
__inline BOOL SearchOneDirectory( IN LPSTR Directory, IN LPSTR FileToFind, IN LPSTR SourceFullName, IN LPSTR SourceFilePart, OUT PBOOL FoundInTree ) { // // This was way too slow. Just say we didn't find the file. // *FoundInTree = FALSE; return(TRUE); }
switch(c&3) while((c-=4)>=0) { foo(); case 3: foo(); case 2: foo(); case 1: foo(); case 0: }
int ofs = (int)&((Class*)0)->element;Vilhelm S. comments: Note that
<stddef.h>
provides an offsetof(type, field_name) macro, so you can leave the dirty work of abusing NULL
pointers in perverted ways to your standard library implementor! (The typical implementation of it is as above, though...)This font definition has a bug. Find it.
char font[] = { .... 0x00,0x61,0x51,0x49,0x45,0x43,0x00,0x00, // 1 :0x5A Z 0x70,0x29,0x24,0x22,0x24,0x29,0x70,0x00, // 1 :0x5B [ 0x00,0x3D,0x42,0x42,0x42,0x42,0x3D,0x00, // 1 :0x5C \ 0x00,0x3C,0x41,0x40,0x41,0x40,0x3C,0x00, // 1 :0x5D ] ...Bernd Jendrissek writes: OMG I can't believe you stole code from my ex-job! I actually bumped into the font definition problem... except that two compilers behaved differently! TopSpeed C and GCC, in particular. The former didn't respect the backslash as a line continuation of a comment, so the code worked. Can't blame it too much, I think that compiler predates C99.
// this is from GMP #define BYTE_OFS(x) (((char *)&internalEndianMagic)[7-(x)]) static double internalEndianMagic = 7.949928895127363e-275;
"If x or y is less than 0"
if((x|y) < 0) { ... }Benoit Hudson comments: Thankfully, gcc -- usually the lowest common denominator among compilers -- implements this optimization. So it's all right to beat your minion programmers with a stick when they do this by hand.
/* Test whether compiler supports C++-style comments */ #define HELPER 0//**/ #define CPLUSPLUS_COMMENTS_SUPPORTED (HELPER+1)
int direction = 1; char direction_name = direction["nsew"];
Given an integer with n bits set, return the next higher number with the same number of bits set. From Hacker's Delight.
unsigned snoob(unsigned x) { unsigned smallest, ripple, ones; // x = xxx0 1111 0000 smallest = x & -x; // 0000 0001 0000 ripple = x + smallest; // xxx1 0000 0000 ones = x ^ ripple; // 0001 1111 0000 ones = (ones >> 2)/smallest; // 0000 0000 0111 return ripple | ones; // xxx1 0000 0111 }
return new ArrayList<String>() {{ for(String x : foo) add(x.toUpper(); }};
Complaints to @steike