That can be tricky because you can't emulate the semantics of the C99 bool type.
In C99
(bool)256 == 1
but on systems which emulate bool with, e.g., an 8-bit unsigned char then (bool)256 == 0