Как уже говорили другие, это зависит от того, какой компилятор вы используете (и даже от выбранных вами параметров компилятора).
Однако на практике с компиляторами для многих 32-битных машин вы найдете: -
- символ: 8 бит
- короткий: 16 бит
- int: 32-битный
- long: 32-bit
- long long: 64-битный (если поддерживается)
Стандарт C в основном гласит, что long не может быть короче int , который не может быть короче short и т. Д. .
Для 64-битных процессоров они часто не меняются, но вы MUST
остерегаетесь того, что указатели и целые числа часто имеют разный размер:
sizeof(int) != sizeof(void*)