кому c quiz ?

Все, что вы хотели знать о программизме, но боялись спросить.
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Re: кому c quiz ?

Сообщение ajkj3em »

huh писал(а):такая фишка

Код: Выделить всё

int f(int a)
{
   int b = ({ if (a) a+1; else -1; });
   return b+1;
}
gcc-specific или все-таки standard ?
ну чего, на вопрос кто ответит или все уже устали пиписками
меряться ? вопрос, заметим, чисто теоретический
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

drain bamage, вопрос действительно есть.
Мне самому стало интересно, будет гну это копмилять, или нет?
То, что с++ код для Win32, как правило, приходится рихтовать для линуха или фрибсди, это точно, по крайней мере мне (в этой точке моего изложения попрошу всяческих гУРУ, как ты правильно заметил, с большими письками, воздержаться от критики и насмешек в мою сторону. Т.к у меня писька не большая. Мол это тебе (т.е. мне) надо рихтовать, а нам не надо, так как у нас большие письки и мы самые умные).
Вечером пойду домой, там у меня в уголочке линух с фрибеэсди в коробочке от компьютера живут. Проверю. Завтра опишу осчущения.

Вовсе не исключаю, что нестандартный компилер, может преобразовать это код в то, что я постил для нормальной нотации-
int b = (a)? a+1: -1;
До завтра.
Аватара пользователя
Akrav
Графоман
Сообщения: 12527
Зарегистрирован: 17 июн 2003, 13:30

Сообщение Akrav »

vg писал(а): воздержаться от критики и насмешек в мою сторону.
Вот этого меньше всего хотелось. Думал действительно человек интересуется, понять хочет, узнать что-то новое. Возразить что-то по делу.
vg писал(а): ... мы самые умные
Ну это уж слишком, просто думаем прежде чем сказать, а уж тем более прежде чем писать код. Однако не исключаю, что для неискушенного наблюдателя это может выглядеть и иначе.
ilid
Завсегдатай
Сообщения: 255
Зарегистрирован: 19 мар 2003, 13:31

Сообщение ilid »

Акрав, ну чего кипятиться? Это как пропасть, есть люди, которые пишут всякие базы данных, есть embedded. Думать надо и там и там, везде свои приоритеты, вопрос по-моему вообще не о том, что написано, а как такое можно откомпелировать.
Аватара пользователя
Akrav
Графоман
Сообщения: 12527
Зарегистрирован: 17 июн 2003, 13:30

Сообщение Akrav »

Извините за двусмысленность. Под "слишком" имел ввиду слишком высокую оценку моих умственных способностей.
Аватара пользователя
Akrav
Графоман
Сообщения: 12527
Зарегистрирован: 17 июн 2003, 13:30

Сообщение Akrav »

ilid писал(а):Думать надо и там и там, везде свои приоритеты, вопрос по-моему вообще не о том, что написано, а как такое можно откомпелировать.
То есть это просто головоломка?
Никакой практической ценности результат нести не должен?
ilid
Завсегдатай
Сообщения: 255
Зарегистрирован: 19 мар 2003, 13:31

Сообщение ilid »

Ну может как шахматные задачи, они ведь тоже в реальной партии редко встречаются, если вообще.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Народ, разговария с гУРУ, я действительно засомневался, и решил проверить, что скажет гну (как было у автора топика) а не винюковые компилеры на написанное ранее безобразие.
Результат:
FreeBSD 4.7 :twisted: , компилер gcc :twisted: .
/usr/prg/tst/> gcc test.cpp
test.cpp: in function int f(int)
test.cpp:5:void value not ignored as it ought to be :twisted: :twisted: :twisted:

Другого, думаю, и не стоило ожидать. Всё это (т.е. функция, написанная автором топика) похоже больше на ответ двоешника профессору в каком либо учебном заведении по курсу, вроде "Основы программирования на С++". Думаю так.

PS. Вот будет прикольно, если это действительно компилируется. За 16 лет программирования на С/C++ такое встречаю впервые.
Аватара пользователя
Akrav
Графоман
Сообщения: 12527
Зарегистрирован: 17 июн 2003, 13:30

Сообщение Akrav »

vg писал(а): PS. Вот будет прикольно, если это действительно компилируется.
Вы имеете ввиду не даёт сообщения об ошибке?
ilid
Завсегдатай
Сообщения: 255
Зарегистрирован: 19 мар 2003, 13:31

Сообщение ilid »

Не особенно удивительно, в С много чего компилируется, а потом не работает. По моему правило должно быть простым - чем проще написано, понятнее - тем лучше, самому потом легче будет баги искать, а намудрить всегда успеется.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

ilid,
Не особенно удивительно, в С много чего компилируется, а потом не работает. По моему правило должно быть простым - чем проще написано, понятнее - тем лучше, самому потом легче будет баги искать, а намудрить всегда успеется.
Илид, ну причём здесь философия?
Был у автора топика фрагмент кода. Это код ошибочен в части синтаксиса, к которому привыкли как те, кто использует нотацию анси, так и кёрнигановскую (гипотетически, конечно) и др.. ЭТО!!!! - не компилируется VC++, Borland C++ (для Win32). На другой платформе (Unix) gcc то же выдаёт ошибку на стадии создания объектного кода. Автор топика задал конкретный вопрос - это "специфично для gcc или это стандарт". На сколько, я его понял, это компилируется на некой платформе (не знаю на какой). Т.е. гитотетически некий компилятор (я такой не знаю) может из лексем приведённого кода построить вполне приемлимый бинарный код

Это и обсуждать надо. А не "эффективность" или "понятность" или "непривычность" неработающего кода. Код не работает. Вразумел?

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

PS. Канадские братья! Не судите строго обездоленного. :cry:
ilid
Завсегдатай
Сообщения: 255
Зарегистрирован: 19 мар 2003, 13:31

Сообщение ilid »

Слушай, ВГ, ты либо не наезжай, либо не кипятись, одно из двух. Я С++ не знаю, на нём писать ничего не умею, С на том уровне который мне нужен был по работе - знаю, и в gcc бывало компилировались вещи, которые в принципе не должны были работать. Я тебе скажу больше, я даже ошибки в компиляторе (не gcc разумеется - местный был компайлер, его написали для внтреннего ассемблера) иногда находил, потому что бывает, и мелкие совсем и покрупнее бывали. Далее, от знаюших людей, вот скажем так С++ - ников поведалось мне, что С - язык без особых требований к коду, что компилятор многие вещи хавает, которые по-идее не должен, потому как у меня бывали подобные примеры, вот поэтому я сказал, что если что-то где-то откомпилировалось и это не работает, меня это не удивляет! Более того, сосбсна это было не по теме топика, моё замечание касалось рассуждения Акрава.
vg:

PS. Вот будет прикольно, если это действительно компилируется.


Вы имеете ввиду не даёт сообщения об ошибке?
А по сему, какие ко мне претензии?
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Re: кому c quiz ?

Сообщение ajkj3em »

Значит так. Вопрос я очевидно сформулировал плохо, перефразирую.

Является ли заключенный в круглые скобки statement block

Код: Выделить всё

({....})


разрешенной стандартом r-value конструкцией ?
Аватара пользователя
Akrav
Графоман
Сообщения: 12527
Зарегистрирован: 17 июн 2003, 13:30

Сообщение Akrav »

VG, Вы всех убедили. Успокойтесь.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Тфь-ты (не на тебя, конечно).

drain bamage,
так бы и сказал.... :shock:

Не работает в VC. В gcc, не знаю, проверю вечером. Это счастя у меня на копме дома.
Вполне допускаю, что в некоторых реализациях С это может прокатит.
Кто запрещает - то. Кстати, надо посмотреть Кёрнигана. Современный С отличается от проотцовского.

to ilid
Обращаясь, к тебе, я на самом деле обращался ко всем. Извини, я вовсе и не наезжал. Правда не хотел ни чего обидного в твой адрес сказать. :oops:
Ответить