2016-01-22 2 views
-4

Пример: Можно ли увеличить размер длинной длинной переменной для хранения значения большего размера. (Более 64 бит)Можем ли мы увеличить размер данных?

+0

Возможно, вы ищете что-то вроде [GMP] (https://gmplib.org/)? – chris

+0

Нет, вы не можете увеличить размер типа данных. Его решение заключается в использовании структур – Shafiq

+0

Если вам нужен больший размер данных, вы должны изменить тип данных, который используете вместо этого. – Ian

ответ

1

Если вы говорите о реализации компилятора: Да, я думаю, что стандарт C не навязывает любая верхняя граница, только минимумы (например, char - 8 бит или более), а ограничения на относительные размеры (например, длинные не могут быть короче int). Таким образом, вы можете установить размер на что-либо в своем собственном компиляторе (или на бэкэнд для существующего компилятора) или предоставить ключи командной строки, чтобы выбрать его во время компиляции.

Если вы спрашиваете у программистов перспективы: No, я не знаю компилятора, который бы поддерживал это. Было бы усложнено, что вам также понадобятся все библиотеки, скомпилированные с пользовательскими размерами целочисленного типа, потому что, если в библиотечном коде ожидается длинное 64 бита, и вы называете это 128-битным, это будет проблемой. На уровне машинного кода нет типа C, в регистрах и памяти есть только сырые байты, и машинный код просто должен обрабатывать их всюду в приложении и в библиотеках.

Возможно, вам стоит задать вопрос о том, чего вы на самом деле хотите достичь, возможно, это решение. Использовать библиотеку bigint? Использовать нестандартный большой целочисленный тип компилятора? Используйте структуру или массив с несколькими целыми числами (библиотека Bigint в основном делает это под капотом)? Использовать плавающие точки? Использовать текстовые номера ascii?