LINUX.ORG.RU

[C] Бесполезные типы данных?

 


0

1

Поясните, зачем нужны типы short и long?

Тип int я использую, если мне просто нужна целая переменная, неважно, какой ширины. int - самый эффективный на любой платформе, это удобно. А что известно про long int? Только гарантированная ширина 32 бита. Но если мне нужно 32 бита, я возьму int32_t, это логично, и я не получу сюрпризов на 64-битной машине То же самое относится и к short int, и к long double.

В общем, не вижу смысла в типах, для которых не описано однозначно множество допустимых значений (int - исключение, как уже сказал).

Есть ситуации, когда они всё-таки полезны?

★★★★
Ответ на: комментарий от Doug

> была бы моя воля - я бы в сях оставил четыре целочисленных типа:

byte - минимально адресуемая единица для конкретного процессора

sbyte - он же, знаковый

word - машинное слово, тип с шириной в sizeof(void*)

sword - знаковый word

Это потому, что ты молодой и глупый, и не знаешь, что такое PL/M, Bliss, и прочие BCPL.

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

да, давай попробуй докажи мне, нафига на современных системах нужен зоопарк char(название вообще смешное, с учетом реальности, т.е. юникода в т.ч.), short, long, int и прочего говна с хер пойми каким размером

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

> да, давай попробуй докажи мне, нафига на современных системах нужен зоопарк char(название вообще смешное, с учетом реальности, т.е. юникода в т.ч.), short, long, int и прочего говна

Не. Давай ты мне объяснишь, почему языки, в которых реализовано твое предложение, умерли.

Потом объясни мне, чем (на 32-бит платформе) int отличается от word, char - от byte, и кто заставляет тебя использовать остальные типы.

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

щас вот пришел этот школьник Doug, и начнется обсуждение вопросов из детского сада, вместо интересного вопроса, поднятого топикстартером

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

> интересного вопроса, поднятого топикстартером

Топикстартеру уже ответили - так получилось в основном по историческим причинам.

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

> Топикстартеру уже ответили - так получилось в основном по историческим причинам.

ну так тогда встают дальнейшие вопросы — может тогда надо short за-depracate-ить, выдавать на него варнинги, и лет через 10 исключить из языка?

кстати, этот Doug с вероятностью 99% это love5an, вот http://www.linux.org.ru/jump-message.jsp?msgid=5847751&cid=5853028

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

Надо Си за-deprecate-ить, и всех его пользователей сжечь на костре. И написать ОС на менеджед языке - тут одна надежда - на MS, как сказали выше уже.

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

> Надо Си за-deprecate-ить

deprecate-илка не отросла еще

И написать ОС на менеджед языке - тут одна надежда - на MS, как сказали выше уже.

а ты понимаешь, что та ОС совсем не на лиспе, а на языке со статической типизацией где вааще никакой свободы?

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

За short могу сказать следующее - мы его эпизодически юзаем. Для достижения экcтремальной производительности приходится делать стуркутры макс. компактными, борьба идет за буквально за каждый байт (это кластере с 64-битной ОС, и про выравнивание я знаю;-)). Поэтому если целая цифирь в short влазит - там ее и хранить. Ну а про разработчиков софта под микроконтроллеры и про всякие биосы я вообще не говорю...

PS 2Doug

Молодой человек, с Вашей категоричностью бы в спикеры Госдумы... ;-)))

Вы никогда не задумывались о том, что Ваш опыт ниразу не всеобъемлющ (я не думаю есть хоть один чел с таки опытом, включая Торвальдса со Столлманном и Кнутом), и что в разных задачах востребованы разные средства разработки? Нравится CL - и пишите себе на ем, коли выходит... но с подобными заявами «депрекатить... закопать» на чужие полянки не лазьте - самого задепрекатят и закопают, и будут абс. правы!;-)

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

>Вы никогда не задумывались о том, что Ваш опыт ниразу не всеобъемлющ (я не думаю есть хоть один чел с таки опытом, включая Торвальдса со Столлманном и Кнутом), и что в разных задачах востребованы разные средства разработки? Нравится CL - и пишите себе на ем, коли выходит... но с подобными заявами «депрекатить... закопать» на чужие полянки не лазьте - самого задепрекатят и закопают, и будут абс. правы!;-)

Я чойто не понял, а вот кроме перехода на личности не нашлось аргументов?

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

Ты не понял, никто и не говорит, что 2байтовые типы не нужны. Проблема в том, что этот ваш short таковым не является.

Конечно, если не собираешься менять железо/ОС/компилятор, то можно надеяться, что ваши структуры не расползутся. Но не слишком ли много «если»? А у int16_t, между тем, никаких проблем нет.

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

Ты не понял, никто и не говорит, что 2байтовые типы не нужны. Проблема в том, что этот ваш short таковым не является.

Вот уж насчет short я всегда считал, что он в любой архитектуре 16-битный...

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

> Вот уж насчет short я всегда считал, что он в любой архитектуре 16-битный...

согласно стандарту он может быть больше 16 бит

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

А никакого перехожа и не было. Я просто высказал свое мнение к Вашему стилю - он конечно очень ЛОР-овский, но ИМНО неконстркутивный;-)

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