I agree that more explicit is almost always better in C. It’s difficult enough as is :D
I would do it exactly like you suggest, but using an explicitly sized type like uint32_t instead.
If I write firmware or low-level code, I almost exclusively use integers with explicit bitwidth.