In OpenMaxAL.h the typedef for XAboolean is given as XAint32 which is a 32-bit signed number. But standard C says that the Boolean type is unsigned and has the lowest ranking in its category of standard unsigned integer types. In simple assignments, if the left operand is a Boolean type, then the right operand must be either an arithmetic type or a pointer. An object declared as a Boolean type uses 1 byte of storage space, which is large enough to hold the values 0 or 1.
Why we should have 32-bits allocated for a boolean type? Also to store 0 or 1 shouldn't that be unsigned ?