Нет в Си никакого стабильного размера для long int. Есть цепочка размеров: sizeof(char) <= sizeof(int) <= sizeof(long int) <= sizeof(long long int) Есть понятие платформы, для которой в реализации фиксируются те или иные размеры для элементов той цепочки.
а есть компиляторы С (не наколеночные от дяди Васи, а худо бедно распространённые) , чтоб они на одной и тоже платформе задавали разные размеры целочисленных типов ?
так платформа в стандарт не входит ;)
в С есть минимальные размеры для типов. и всякие int64_t для тех, кому важен точный размер
Вот именно поэтому и спешиваю какой эквивалент - я же сверху кинул ссылки - по которым видно что long int может как 32 битным быть, так и 64х битным. В дельфи ему соответствует LongInt, в фпц же LongInt - всегда 32хбитный. Вот я и спрашиваю -а какой тип в фпц соответствует long int тогда? Либы сишные как подключать то тогда, если они используют LongInt?
посмотри в uses ctypes;
входит, тем более на unix
глянул - ясно на уровне компилятора нет аналога. класс! даже для такой элементарной вещи в юсес тянуть что-то. печаль беда(
ну вот и печально что даже тут надо велосипедить свои типы
Зачем тянуть? В System есть размерные: Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64
паскаль модульный язык, это правильное решение
а long int? он может на линуксе быть как 32х битным, так и 64битным, а на винде всегда - 32 бита, по abi этих систем. в дельфи ему полностью соответствует LongInt, в лазарусе придеться монстрика на ифдефах пилить.
какое это тут преимущество дает? кроме очередного велосипедостроения дефолтных фич
и я вспомнил, пилил же, долго не мог понять, а потом каааак понял, наифдефал и построил "мусорный" недотип очередной. и да - это плохо - ибо юзер вмето привычного типа видит очередной хз что и тупит
Ну я создам тип новый, так? - так, он будет иметь какое-то имя, и если в дельфи по стандартному названию LongInt все очевидно, то тут будет MyMegaInt, от чего пользователь будет вынужден лезть в сорцы и смотреть что это за покемон такой, вместо того чтобы код писать.
Ну танцуйте с заменой типа в прототипе каждой функции, кто ж вам запретит
а выбора нет -если си версия использует long int то мы будем вынуждены городить велосипед, из-за того что аналога long int в fpc нет
выбор есть всегда ;-)
и каков же он?
ну ясно - внятного ответа нет, пошли в ход мемы
Это всё ещё забота о новичках? Если нет, то не вижу проблэмс )
это забота о психическом здоровье пользователя компилятора
Что подразумевается под платформой? Ось или процессор, если проц то есть, с лонгами чехарда
В принципе я тебе даж с рабочий чат кидал линк когда 6 разных компилеров, у пяти лонг 4 байта у шестого 8 байт
Обсуждают сегодня