Кто все эти люди?

Dec 17, 2012 01:20

Кто все эти люди, что делают компиляторы не просто с урезанной функциональностью относительно стандарта языка, что можно было бы понять и обосновать, а с откровенно неправильной, даже с официально документированной неправильной или с неправильной функциональностью включённой вместо правильной по умолчанию? Зачем они подкладывают пользователям ( Read more... )

computer, c, software

Leave a comment

spamsink December 17 2012, 16:06:49 UTC
Номер страницы, которой навеяно, можешь указать?

Reply

archaicos December 17 2012, 20:18:50 UTC
Я всё не упомню, да и даже до конца не стал дочитывать, но что запомнил:
identifiers not case sensetive by default
short = 8 bits
int a[4]; &a[3]-&a[0] != 3; &a[3]-&a[0] == (char*)&a[3]-(char*)&a[0]
Я думаю, там ещё есть сюр призы.

Reply

spamsink December 17 2012, 20:45:14 UTC
identifiers not case sensetive by default

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

short = 8 bits

Совершенно в своём праве, стандарт позволяет, а кто рассчитывает на строгое sizeof(char) < sizeof(short) < sizeof(int) - ССЗБ.

int a[4]; &a[3]-&a[0] != 3;

Вот это делает язык не языком Си, да. Если они подают это не как баг, а как фичу, и еще хвастаются, то лучше выбросить.

Reply

archaicos December 17 2012, 20:51:34 UTC
short, если судить по С89 или C99, должен быть не менее 16 бит, иначе в него не влезут значения от -32767 до +32767, как требует стандарт.

Reply

spamsink December 17 2012, 21:02:16 UTC
В отсутствие других проблем язык с восьмибитным short был бы Керниган-Ричевским Си с элементами новейшего синтаксиса. А с такой арифметикой указателей, как у них - в сад.

Reply

archaicos December 17 2012, 22:13:24 UTC
Но он у них не K&R.
И потом, K&R С в 2012-м году? :)

1-ю версию K&R просто найти не могу - раритет.
Google Books выдаёт по поиску short на http://www.google.kz/books?id=va1QAAAAMAAJ&hl=ru
это:

... )

Reply

spamsink December 17 2012, 22:24:19 UTC
Возможно, я перепутал с прямым углом. На словной машине может быть 1 == sizeof(char) == sizeof(short) == sizeof(int) == sizeof(long), и все они могут быть хоть 37 бит.

Reply

archaicos December 17 2012, 22:41:18 UTC
Может. Про прямой угол не помню шутки.

Reply

spamsink December 17 2012, 22:50:56 UTC
Полковник: Вода кипит при 90°
Курсант: Тов. полковник, вода кипит при 100°
Полковник: Ах да, я с прямым углом перепутал.

Reply

archaicos December 17 2012, 23:02:01 UTC
Полковник, видать, считал углы в градах. :)

Reply

spamsink December 17 2012, 23:07:10 UTC
Артиллерист, что ль? :)

Reply

archaicos December 17 2012, 23:54:40 UTC
История умалчивает.

Reply


Leave a comment

Up