As far as I know the smallest unit in C is a byte. Where does this constraint comes from? CPU?
byte
For example, how can I write a nibble or a singl
nibble
The smallest you can get is 1 byte. That's as much as one 1 in binary. If you save a file called binary.bin that just contains a 1, that will take 1 byte