You didn't read my 2nd post fully did you? I'm already aware of the <limits.h> but I was trying to remove reliance on that (will add define as well to prevent issues).
Well I have a temporary solution for now:
Thanks, I'll give it a try, failing that I'll add it to a new file I'm making that detects architectures.
Edit: This seems to never reach the #error directive I added so I will use what you have suggested, Thank you :) BTW I kept the CHAR_BIT outside the enum and in an #if directive