LINUX.ORG.RU

Почему в C на 64 битных платформах int не 64 битный? Есть ссылочка для чайников?

Потому что размер машинного слова - у long. Хотя и есть некоторые извращенские конпеляторы, у которых int 64-битный, но они не Ъ и должны умереть, корчась в аццких муках.

mv ★★★★★ ()
Ответ на: комментарий от Booster

Майкрософт юзает LLP64. Хотя ему двно пора умереть в муках. ^)

О чём и речь...

mv ★★★★★ ()
Ответ на: комментарий от ACR

хз, здесь посмотрите, может есть что по этому поводу.

зы: интересно, когда в исо-с появится поддержка int128_t :) в драфтах исо-с1х пока не находил… будут там всякие short short int / long long long long int и т.п., или таки сделают нормальную типизацию на уровне языка, а не на уровне стандартных библиотек?)

arsi ★★★★★ ()

А где и когда и кто сказал, что размер int должен быть равен размеру указателя? int64_t size_t ptrdiff_t uintptr_t и т.п. придумали для решения разных проблем с размерами.

anonymous ()
Ответ на: комментарий от arsi

а почему не int101_t? Кто сказал, что в С кол-во бит в 1 байте должно быть всегда 8? И что байт в словах должно быть кратно степени 2?

anonymous ()
Ответ на: комментарий от anonymous

> а почему не int101_t?

потому что в 128-битовых процах обычно 128 бит на регистр. // К.О.

> Кто сказал … ?

здравый смысл, не? ;)

arsi ★★★★★ ()
Ответ на: комментарий от ACR

AD1940/AD1941 SigmaDSP Multichannel 28-Bit Audio Processor

28-bit × 28-bit multiplier with full 56-bit accumulator

Выпускается религиозной сектой «AnalogDevices против 8 бит»

anonymous ()
Ответ на: комментарий от arsi

>здравый смысл, не? ;)

Ну тогда здравый смысл избежал попадания в стандарт С, не? ;)

anonymous ()
Ответ на: комментарий от madcore

> Вирт, не?

Знаешь что бы он с тобой сделал за такие слова?

ACR ()
Ответ на: комментарий от madcore

Всем известно, что разрядность данных типа Integer в Pascal точно соответсвует разрядности микропроцессора. Это непоколебимый факт. Для сишников это новость?

iZEN ★★★★★ ()
Ответ на: комментарий от iZEN

Это новость для главной. Сишники не уверены в нужности паскаля.

ACR ()
Ответ на: комментарий от anonymous

Да, вроде есть ISO-стандарт на Pascal. Возможно, это требование пришло из Algol-60/68, но я точно не уверен.

iZEN ★★★★★ ()
Ответ на: комментарий от iZEN

>Всем известно, что разрядность данных типа Integer в Pascal точно соответсвует разрядности микропроцессора. Это непоколебимый факт.

Перед этим ты утверждал несколько другое:

размер int должен быть равен размеру указателя


Берем борманд паскаль: размер integer==16бит, размер pointer==32.

madcore ★★★★★ ()

А с какого перепугу он должен быть 64-битный?

gear ★★★ ()
Ответ на: комментарий от ACR

>Ну как нибудь хакнуть типа: typedef int32 int32_t;
ФГМ

xydo ★★ ()
Ответ на: комментарий от ACR

Я сказал, запрещаю не восьмибитные байты, будешь выпендриваться предам анафеме быдло.

школиё!

Название «байт» (слово byte представляет собой сокращение словосочетания BinarY TErm — «двоичный терм») было впервые использовано в 1956 году В. Бухгольцем (англ. Werner Buchholz) при проектировании первого суперкомпьютера IBM 7030 для пучка одновременно передаваемых в устройствах ввода-вывода шести битов. Позже, в рамках того же проекта, байт был расширен до восьми бит.

xydo ★★ ()
Ответ на: комментарий от xydo

+

В некоторых архитектурах (как правило, это суперкомпьютеры вроде Cray или сигнальные процессоры вроде TMS320VC31) из-за используемой адресации размер байта равен размеру машинного слова и содержит 32 бита. В терминах языка программирования Си sizeof(char) = sizeof(int) = 4.

xydo ★★ ()
Ответ на: комментарий от xydo

> В некоторых архитектурах (как правило, это суперкомпьютеры вроде Cray или сигнальные процессоры вроде TMS320VC31) из-за используемой адресации размер байта равен размеру машинного слова и содержит 32 бита. В терминах языка программирования Си sizeof(char) = sizeof(int) = 4.

Вроде же в одной из прошлых тем этого же направления выясняли, что по стандарту sizeof(char) == 1, но char может быть больше восьми бит.

const86 ★★★★★ ()
Ответ на: комментарий от arsi

ISO/IEC 9899 Second edition 1999-12-01:

3.6 byte - addressable unit of data storage large enough to hold any member of the basic character set of the execution environment

6.2.5.3 An object declared as type char is large enough to store any member of the basic execution character set.

6.5.3.4.3 [The sizeof operator] When applied to an operand that has type char, unsigned char, or signed char, (or a qualified version thereof) the result is 1.

const86 ★★★★★ ()
Ответ на: комментарий от iZEN

>Всем известно, что разрядность данных типа Integer в Pascal точно соответсвует разрядности микропроцессора. Это непоколебимый факт.

Дурачёк? В очередной раз «блеснул» своим «образованием»?

Led ★★★☆☆ ()
Ответ на: комментарий от const86

чорд, действительно) согласно стандарту, sizeof(char) == 1, где «1» — [«неделимая» единица данных (т.е. минимальная единица данных для данного процессора)] это и есть «атом», т.е. sizeof(char), который определён стандартом как 8+ бит. другими словами, стандарт гарантирует, что размер абсолютно любого типа будет кратен sizeof(char), нет?

arsi ★★★★★ ()
Ответ на: комментарий от arsi

стандарт гарантирует, что размер абсолютно любого типа будет кратен sizeof(char), нет?

У этого есть и физический смысл. Байт в разы больше восьми бит там, где отдельный октет не адресуется. Автоматически ни один тип также не может быть меньше байта.

Xenesz ★★★★ ()
Ответ на: комментарий от madcore

Перед этим ты утверждал несколько другое:

размер int должен быть равен размеру указателя

Я этого не говорил. Перечитай ветку с начала внимательно.

iZEN ★★★★★ ()
Ответ на: комментарий от Led

Дурачёк?

суффиксы -ок, -ек в именах существительных

«Ходит дурачек, по лесу. Ищет дурачек, глупее себя.»

И как ни странно - находит! Хотелось бы, в очередной раз, напомнить всем любителям русского языка про существование такой вещи, как орфография. Если быть более точным, про суффиксы существительных. Правила в языке существуют не просто так, и если они существуют, то следует их все же соблюдать. Много различных людей заявляют обратное. Специально для идиотов поясню: лично мне, плевать на вас конкретно, на вашу манеру письма и все говно, которое из вас по поводу моих заметок льется, вы можете писать так, как хотите (хоть на суахили) и тем, чем вам нравится (хоть шариковой ручкой, вставленной в задницу). Замечу, однако, что конструктивную критику я приветствую и к ней, к критике, прислушиваюсь. На фразы «ты мудак!», «пошел на хуй!» и проч. отвечаю точно таким же образом.

Вернемся к орфографии. Когда вы пишете слова с суффиксом -ок, -ек, чтобы не делать ошибок, можно воспользоваться простейшим правилом:

"-ок, -ек. После шипящих под ударением пишется -ок: бережок, волчок, петушок, сапожок. Суффикс -ек после шипящих пишется в том случае, если на него не падает ударение: ножичек, орешек."

В итоге получается, что ошибки можно не делать и это не так трудно. Хотите писать грамотно - интересуйтесь, не хотите - будьте долбоебами, никто вам не запрещает.

До скорых встреч.

Автор: Thoth

iZEN ★★★★★ ()
Ответ на: комментарий от madcore

Или ты не заметил знак вопроса? Я усомнился.

iZEN ★★★★★ ()
Ответ на: комментарий от iZEN

GCC - это прежде всего эмулятор MS Visual Studio, а линуксы и фряшки - бесплатные эмуляторы ОС Виндовс. Так?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.