It's not limited, what is important is that the number of bit-fields can not be grater than the number of bit's of the data type, for example:
typedef struct _Structure {
int field1:32; // OK
int field2:40; // Error, int is 32 bit size
char field3:4; // OK
char field4:9; // Error, char is 8 bit size
} Structure;
The size of data type, the number of bit-fields, and endianness are hardware/compiler depends.