I\'m dealing with some code at work that includes an expression of the form
-(sizeof(struct foo))
i.e. the negation of a size_t
http://msdn.microsoft.com/en-us/library/wxxx8d2t%28VS.80%29.aspx
Unary negation of unsigned quantities is performed by subtracting the value of the operand from 2n, where n is the number of bits in an object of the given unsigned type. (Microsoft C++ runs on processors that utilize two's-complement arithmetic. On other processors, the algorithm for negation can differ.)
In other words, the exact behavior will be architecture-specific. If I were you, I would avoid using such a weird construct.