Здравствуйте, Kemm, Вы писали:
K>Здравствуйте, Анатолий Широков, Вы писали:
K>>>А можно процитировать, если не сложно? А то я не настоящий сварщик... В смысле, стандарта под рукой нет, да и вообще на plain C пишу в основном. 8)) АШ>>
АШ>>5 A return statement in main has the effect of leaving the main function (destroying any objects with automatic storage duration) and calling exit with the return value as the argument. If control reaches the end of main without encountering a return statement, the effect is that of executing return 0;
K>Спасибо. А зачем это было сделано, интересно?
Программа достигла конца main и значит она завершилась и завершилась "успешно" (код возврата 0), без ислючений и прочего.
Re[3]: издевательства над switch-ем на собеседовани
korzhik wrote:
> Но вот целиком программа не корректна, так как нельзя ставить точку с > запятой, после тела функции. Но это скорее всего опечятка.
Вот это, как и ожидалось, без вопросов компилируется g++. Правда, никак
не могй найти внятного комментария по этому поводу в стандарте или
еще где. То ли попустительство компилятора, то ли общая грамматика
такая. Скорее последнее.
#include <iostream>
int main() { return 1 };;;;
Posted via RSDN NNTP Server 2.0
Re[9]: издевательства над switch-ем на собеседовани
anvaka wrote: > > K> /*...*/ пример кода для запугивания > K> претендентов на собеседовании /*...*/ > > А как называется Ваша фирма, если не секрет?
Это обучающий центр с возможностью неоднократного
прохождения собеседований, при этом собеседования
проходят потоком. Человек 10-20 сидят с тестами и
отвечают, потом показывают чего наотвечали и
спрашиваются дополнительно.
Нам по барабану, где кто завалятся. Нам важно,
что они реально знают, чтобы уровень подготовки
в группах был схожий.
Обычно, правда, вообще ничего не знают.
Mikhail
Posted via RSDN NNTP Server 2.0
Re[9]: издевательства над switch-ем на собеседовани
Здравствуйте, RomanOdaisky, Вы писали:
RO>У кого-то из нас глюки. ГДЕ UB? Приведите, пожалуйста, 2 или больше противоречащих варианта вычисления (по шагам).
UB в том, что между изменениями, например, переменной y нет точек следования.
Re[3]: издевательства над switch-ем на собеседовани
Здравствуйте, kittown, Вы писали:
K>korzhik wrote:
>> Но вот целиком программа не корректна, так как нельзя ставить точку с >> запятой, после тела функции. Но это скорее всего опечятка.
K>Вот это, как и ожидалось, без вопросов компилируется g++. Правда, никак K>не могй найти внятного комментария по этому поводу в стандарте или K>еще где. То ли попустительство компилятора, то ли общая грамматика K>такая. Скорее последнее.
K>
Если это тело инлайновой функции, определнной внутри определения класса, то точку с запятой можно поставить, а можно и не ставить. Это сказано в фрагменте грамматики в пункте 9.2.
Если же это определение функции, располагающееся за пределами определения класса, то ставить точку с запятой после такого определения явно запрещено стандартом языка. Для этого надо внимательно рассмотреть фрагмент грамматики в пункте 7/1 и обязательно прочитать пункт 7/3.
Re[4]: издевательства над switch-ем на собеседовани
> Если это тело инлайновой функции, определнной внутри определения класса, > то точку с запятой можно поставить, а можно и не ставить. Это сказано в > фрагменте грамматики в пункте 9.2. > > Если же это определение функции, располагающееся за пределами > определения класса, то ставить точку с запятой после такого определения > явно запрещено стандартом языка. Для этого надо внимательно рассмотреть > фрагмент грамматики в пункте 7/1 и обязательно прочитать пункт 7/3.
Ясно. Значит, просто парсер у g++ так устроен.
Mikhail
Posted via RSDN NNTP Server 2.0
Re[5]: издевательства над switch-ем на собеседовани
Если уж вам действительно хотелось интересного примера со свитчем для самоутверждения и опускания неких студентов (предположительно тех, кто толком не знает про свитч), использовали бы Duff's device.
Of course, the code must be complete enough to compile and link.
Здравствуйте, kittown, Вы писали:
K>Если скомпилируется, то почему?
Каков был бы ваш ответ на этот вопрос?
Re: издевательства над switch-ем на собеседовани
От:
Аноним
Дата:
05.12.05 09:27
Оценка:
Здравствуйте, kittown, Вы писали:
K>Hi,
K>Вчера сам собой придумался пример кода для запугивания K>претендентов на собеседовании:
K>#include <iostream> K>int main() K>{ K> switch(0) default: std::cout << "Hello World!" << std::endl; K>};
K>Вопрос претендентам — скомпилируется ли ? Если не скомпилируется, K>то где ошибка (помимо ошибки в ДНК автора) ? Если скомпилируется, K>то почему и что будет делать ? Компилятор юзать нельзя.
K>Уже жду следующей команды студентов, желающих пособеседоваться.
K>Mikhail
ИМХО — от программиста требуется умение писать максимально прозрачный, ясный и самодокументируемый код — а не умение изголяться над психикой и интеллектом читающих его код.
Re[3]: издевательства над switch-ем на собеседовани
От:
Аноним
Дата:
05.12.05 09:33
Оценка:
Здравствуйте, kittown, Вы писали:
K>anvaka wrote: >> >> K> /*...*/ пример кода для запугивания >> K> претендентов на собеседовании /*...*/ >> >> А как называется Ваша фирма, если не секрет?
K>Это обучающий центр с возможностью неоднократного
Ключевое слово — "обучающий" )
Циркачи одним словом...
Re[2]: издевательства над switch-ем на собеседовани
Lorenzo_LAMAS wrote: > > Если уж вам действительно хотелось интересного примера со свитчем для > самоутверждения и опускания неких студентов (предположительно тех, кто > толком не знает про свитч), использовали бы Duff's device.
Самоутверждаться незачем, а опускать — некуда. После просмотра теста
и так все "веселые" — они же до начала разговора его час-полтора
решают.
А Duff's девайс добавим. В качестве иллюстрации, что case N и default
есть не более, чем метки. И уже на следующем собеседовании у кандадата
шансов будет куда больше.
Mikhail
Posted via RSDN NNTP Server 2.0
Re[2]: издевательства над switch-ем на собеседовани
Аноним wrote: > > ИМХО — от программиста требуется умение писать максимально прозрачный, > ясный и самодокументируемый код — а не умение изголяться над психикой и > интеллектом читающих его код.
Писать, в 99% случаев — да. А читать нужно практически любой.
Кроме того, для разбора любых выкрутасов с Duff's device и примеров
подобных моему достаточно понимания, что case X и default — это
такие особенные метки, разрешенные только внутри switch-а. Если
бы этому так сразу учили, вопросов было бы меньше.
Mikhail
Posted via RSDN NNTP Server 2.0
Re[2]: издевательства над switch-ем на собеседовани
Здравствуйте, <Аноним>, Вы писали:
А>ИМХО — от программиста требуется умение писать максимально прозрачный, ясный и самодокументируемый код — а не умение изголяться над психикой и интеллектом читающих его код.
Это они будут по методики обучения американских командос, почерпнутой из боевиков, их учить...
Типа сатрите какие вы тупые и никчемные, а я великий — вас учить буду
Так сказать, чтобы обучаемые прониклись мощью сэнсэя
ЗЫ
Это на правах шутки, но как грится — сказка ложь, да в ней намеу ...
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[4]: издевательства над switch-ем на собеседовани
Аноним wrote: > >> > K> /*...*/ пример кода для запугивания >> > K> претендентов на собеседовании /*...*/ >> > >> > А как называется Ваша фирма, если не секрет? > > K>Это обучающий центр с возможностью неоднократного > > Ключевое слово — "обучающий" ) > Циркачи одним словом...
Именно. Общая программа:
0) Введение в C++ с описанием базовых концепций и не только
1) C++ — язык, на котором можно написать чер-те-что.
см. #define private public
2) Некоторые так и делают и вот так можно прочесть их творчество.
2.5) Вот вам пример убитого кода, тем не менее хорошо
показывающий отдельные тонкости языка. Писать так не
надо, но понимание улучшает.
3) А вот надо делать нормальным людям.
4) Вот такие типичные ошибки. Да, именно их все вы только
что и сделали. Сами. А вот так надо их исправлять.
5) А теперь идите и делайте задачу на защиту с презентацией,
а мы вас будем консультировать, если надо.