Have you ever wanted to do compile-time checks on constant-expressions? Well, one way is to use the known method assert(expr). However, this type of check is performed at run-time. Sometimes, compile-time checks is needed, which is what this code will do:
// C_ASSERT() can be used to perform many compile-time assertions:
// type sizes, field offsets, etc.
// An assertion failure results in error C2118: negative subscript.
#define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1]
You might ask: How the hell does it work? Well, as the comments explain, it works by using a negative subscript (-1) in an array when the expressions to check for is false, which is of course invalid and will cause a compilation error, otherwise, if the expression is true, a positive subscript is used, which is alright. It does this by declaring (but not creating) an array with the size as the subscript.
Hope someone finds it useful.