Я знаком с концепцией stdint.h в C. Явным образом указывая размер целого, заголовочный файл заменит целое число #define на соответствующее целое на этом компьютере. Например, если моя машина имеет 16-битные целые числа без знака, то uint32_t
будет заменен на long unsigned int
.Как вы определяете, поддерживает ли ваш аппарат стандартный целочисленный тип данных в C?
Однако предположим, что ваша машина поддерживает только до 32 битных целых чисел. Что произойдет, если вы использовали int64_t
? Если этот целочисленный размер не поддерживается, как это будет устранено, так как нет замены, которая может его исправить?
Может быть, компилятор и ошибка говорят, что это невозможно решить? Или он попытается использовать два 32-битных распределения для хранения 64-битного типа данных?
Существует компилятор C для 8-битного процессора (где регистры всего 8 бит) без сопроцессора Math. И они поддерживают 'long' и' float'. Ты можешь представить? – i486