Re[4]: Как лучше построить собеседование?
От: enji  
Дата: 31.08.12 09:46
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Я не так давно ради прикола сходил посмотреть на современное

V>собеседование (программирую на С и С++ уже 20 лет). Так вот на
V>простейший вопрос, то что я постоянно использую в повседневном
V>программинге не задумываясь уже лет 10, но поставленный в абстрактной
V>форме на собеседовании я ответить не смог.
if, switch, функции, классы — не? или в чем вопрос-то?

V>Собеседования, подобные описанным выше фактически отбирают тех, кто

V>недавно прочитал книжки по языку и разобрался в них и все эта теория еще
V>не выветрилась.
Ну хз, вопросы вроде как тривиальные. И вполне жизненные. Я чтобы их сформулировать, в книжку не лез. Просто взял несколько тем по памяти...

А чего спрашивать? Про круглые люки и гномиков — какой-то маразм. Вообще не спрашивать про язык? Ну дык ты ж на нем пишешь, тривиальные вещи должен знать.
Re[3]: Как лучше построить собеседование?
От: Vzhyk  
Дата: 31.08.12 09:51
Оценка:
31.08.2012 12:39, enji пишет:

> Поддержки имеющихся проектов, их улучшения, работы над новыми.

>
> Собственно чем мой ответ тебе помог? имхо, все хотят от сотрудников
> примерно такого....
Мне ничем, ты же совета спрашиваешь. А твой ответ говорит только о том,
что ты не знаешь, что именно тебе нужно от нового сотрудника. А пример
применения такого подхода вот: http://rsdn.ru/forum/message/4870693.aspx
Автор: __kot2
Дата: 27.08.12
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Как лучше построить собеседование?
От: enji  
Дата: 31.08.12 09:58
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>А твой ответ говорит только о том,

V>что ты не знаешь, что именно тебе нужно от нового сотрудника.
Гм, сильное заявление. А что по твоему ответит тот, кто знает об этом?

V> А пример

V>применения такого подхода вот: http://rsdn.ru/forum/message/4870693.aspx
Автор: __kot2
Дата: 27.08.12

Тему проглядел, к чему ты на нее ссылаешься — не понял. Наняли чуваков, которые пахали на испытательном, а потом обленились? Поговорить, если не работает — уволить. Проблем не вижу...
Re[7]: Как лучше построить собеседование?
От: Vzhyk  
Дата: 31.08.12 09:59
Оценка:
31.08.2012 12:41, enji пишет:

> Ну вестимо нашей фирме и нашим задачам.

Адекватным вашим задачам — это перл.

> Я вот пока не понял, в чем смысл твоих вопросов?

В том, чтобы ты сначала осознал четко, какие именно требования ты
предъявляешь к новому сотруднику, а затем уже выяснял, удовлетворяют ли
соискатели твоим требованиям ну и также осознавал, насколько твои
требования соответсвуют вашей деятельности. Главное, что требования ты
должен (себе) сформулировать точно и четко и так, чтобы их можно было
проверить.
Posted via RSDN NNTP Server 2.1 beta
Re[8]: Как лучше построить собеседование?
От: enji  
Дата: 31.08.12 10:05
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>> Я вот пока не понял, в чем смысл твоих вопросов?

V>В том, чтобы ты сначала осознал четко, какие именно требования ты
V>предъявляешь к новому сотруднику, а затем уже выяснял, удовлетворяют ли
V>соискатели твоим требованиям ну и также осознавал, насколько твои
V>требования соответсвуют вашей деятельности. Главное, что требования ты
V>должен (себе) сформулировать точно и четко и так, чтобы их можно было
V>проверить.

О великий гуру! Расскажи же мне, чем плохи мои требования?
На всякий случай их тут повторяю:
— знание С, C++ — обязательно
приветствуются
— опыт работы
— знание наших процессоров
— умение читать принципиальные схемы
— знания в нашей прикладной области

Собеседование ставит своей целью проверить пункт номер 1 и выяснить, что получается по остальным пунктам. Пункты 1 и 2 важны, поэтому хочется посмотреть на код, который выдает соискатель.
Re[5]: Как лучше построить собеседование?
От: Vzhyk  
Дата: 31.08.12 10:09
Оценка:
31.08.2012 12:46, enji пишет:

>или в чем вопрос-то?

Это не вопрос. Это так пример к сведению.

> А чего спрашивать? Про круглые люки и гномиков — какой-то маразм. Вообще

> не спрашивать про язык? Ну дык ты ж на нем пишешь, тривиальные вещи
> должен знать.
Ну когда я ищу человека, я ищу в первую очередь того, кто будет работать
и изучать то, что нужно по дальнейшей работе. Для этого беседа о его
прошлой работе, что именно он делал и как, как решал различные
сложности. В общем беседа. А вот непосредственно С, C++, если есть 2-3
года коммерческого программирования мне достаточно. Если у меня есть
неуверенность в его опыте С++, предлагаю набросать класс vector, как он
его видит.
Да, для те, у кого опыта меньше 2 лет, тест на дом.
Posted via RSDN NNTP Server 2.1 beta
Re[6]: Как лучше построить собеседование?
От: enji  
Дата: 31.08.12 10:14
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Ну когда я ищу человека, я ищу в первую очередь того, кто будет работать

V>и изучать то, что нужно по дальнейшей работе. Для этого беседа о его
V>прошлой работе, что именно он делал и как, как решал различные
V>сложности. В общем беседа.
Ок, ясно, спасибо.

V>А вот непосредственно С, C++, если есть 2-3

V>года коммерческого программирования мне достаточно.
Вот тут не согласен. Был у нас чувак, который несколько лет писал вполне себе коммерческий код. Но как потом внезапно оказалось после его увольнения — совершенно не поддерживаемую копи-пасту.
Так что на код хотелось бы посмотреть, даже с 3 годами опыта...
Re: Как лучше построить собеседование?
От: Alexéy Sudachén Чили  
Дата: 31.08.12 10:18
Оценка:
E>Несколько простых вопросов на знание языка (~15-20 мин):

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

E>- напишите функцию реверса строки

E>- чему равен размер struct {int a; char c;}
E>- зачем нужен volatile
E>-

В таком виде лучше не надо. Разве что для проверки тех самых личных качеств. Хорошему программеру надо задавать вопрос с челленджем. Пусть маленьким, но челленджем. К тому же все мужики независимо от возраста дети, и любят играть и соревноваться.

E>- Есть устройство, у которого могут быть разные каналы передачи данных (посл порт, tcp, twi, ...) и разные протоколы (отличаются форматом пакетов). Как бы вы спроектировали программу для него?


От это уже неплохо. Но стоит добавить изюминку. Просто что бы была точка опоры и какая-то сложность.

E>Дать "домашнее задание" по теме работы (~2-4 часа). К примеру: "Вот описание протокола управления устройством. Напишите программу, которая принимает стандартный ввод, выделяет из него команды и отвечает на них в стандартный вывод. Пока требуется реализовать поддержку только указанных команд (скажем, 4 или 5). Предусмотрите возможность добавления новых команд."


Бессмысленно. Лучше просить показать собственные наработки. Или просто любимые приёмы. Вам нужен человек который за всю свою карьеру ничего под себя не создал?!

E>И оценить как работу проги (написать простой автотестер, который скормит кривые пакеты, случайный мусор, а также правильные команды и посмотрит на ответы), так и исходный код, наличие тестов, сборочного скрипта, репозитария dvcs


От это тоже хорошо. Здесь с одной стороны есть фактура с которой работать и человеку проще начать, с другой умение читать и понимать, даже важнее умения писать. Написать то может любой, а вот прочитать, понять, и переделать с учётом изменившихся требований — далеко не каждый.
Re[5]: Как лучше построить собеседование?
От: Vzhyk  
Дата: 31.08.12 10:19
Оценка:
31.08.2012 12:58, enji пишет:


> Гм, сильное заявление. А что по твоему ответит тот, кто знает об этом?

Твои требования должны быть четко сформулированы тобой и проверяемы.
А не хочу сказать, что это плохо, проверять знания, если именно это ваши
требования и именно это вам и нужно.
То есть фактически. Твое требование (по первому посту): "Нам нужны
программисты с такими-то знаниями и не более" — и это ты и проверяешь.
Нюанс в том, что именно такое требование чрезвычайная редкость и даже с
твоим нечетким высказыванием выше это требование слабо согласуется.

> Тему проглядел, к чему ты на нее ссылаешься — не понял. Наняли чуваков,

> которые пахали на испытательном, а потом обленились? Поговорить, если не
> работает — уволить. Проблем не вижу...
У ТС большие проблемы с этим. Как понятно было из обсуждения — у них
такая ситуация типична.
Posted via RSDN NNTP Server 2.1 beta
Re[9]: Как лучше построить собеседование?
От: Vzhyk  
Дата: 31.08.12 10:22
Оценка:
31.08.2012 13:05, enji пишет:

> На всякий случай их тут повторяю:

> — знание С, C++ — обязательно
Тогда полноценный экзамен самое логичное и правильное.

Но будут ли эти люди работать? Фактически основной вопрос, который ты
боишься поставить, но именно ответ на него тебе и нужен, вероятнее
всего. (немножко потелепал)
Posted via RSDN NNTP Server 2.1 beta
Re[10]: Как лучше построить собеседование?
От: enji  
Дата: 31.08.12 10:31
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>31.08.2012 13:05, enji пишет:


>> На всякий случай их тут повторяю:

>> — знание С, C++ — обязательно
V>Тогда полноценный экзамен самое логичное и правильное.
ИМХО, ты передергиваешь — вопросы из первого поста не являются экзаменом на С++. Просто несколько вопросов, чтобы оценить знания кандидата.

V>Но будут ли эти люди работать? Фактически основной вопрос, который ты

V>боишься поставить, но именно ответ на него тебе и нужен, вероятнее
V>всего. (немножко потелепал)
Оно то конечно так, но брать человека, который будет работать, но не знает С/С++ — как то страшновато. Сможет ли он освоить язык за разумный срок? Хз.
Брать человека, который язык знает, но генерит жуткий код — тож не охота. Если он уволится — мне же за ним подтирать. Отсюда идея про тестовое задание/открытый проект.

Будет ли работать тот, кто знает язык и нормально пишет — ну тоже хз. Однако если он "адекватен" — то будет, иначе накой он пришел на собеседование?
Re[7]: Как лучше построить собеседование?
От: Vzhyk  
Дата: 31.08.12 10:33
Оценка:
31.08.2012 13:14, enji пишет:

> V>А вот непосредственно С, C++, если есть 2-3

> V>года коммерческого программирования мне достаточно.
> Вот тут не согласен. Был у нас чувак, который несколько лет писал вполне
> себе коммерческий код. Но как потом внезапно оказалось после его
> увольнения — совершенно не поддерживаемую копи-пасту.
Не понимаю, как такое может быть? Так или иначе код любого программиста
известен его начальнику. Либо человек пишет код так, как у нас принято,
либо увольняется.
Понятно, что каждый человек пишет код со своими особенностями, но проект
всегда разбит на модули, а модули на более мелкие модули, все модули
покрыты тестами. В итоге, если какой молодой наваял какую фигню в
течение 1 месяца (чаще все видно уже за 1-2 недели), достаточно
безболезненно все починить.
Как пример, один очень серьезный проект, был сделан фактически силами
студентов и двух "старичков", проект уже живет 7 лет и развивается и не
собирается умирать.

> Так что на код хотелось бы посмотреть, даже с 3 годами опыта...

"Обжегшись на молоке..."
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Как лучше построить собеседование?
От: Vzhyk  
Дата: 31.08.12 10:38
Оценка:
31.08.2012 13:18, Alexéy Sudachén пишет:

> От это уже неплохо. Но стоит добавить изюминку. Просто что бы была точка

> опоры и какая-то сложность.
По мне и так нормально, но нужно больше детализации в постановке задачи,
а то тянет на вариант: "угадайте, что мы хотим".

> Бессмысленно. Лучше просить показать собственные наработки. Или просто

> любимые приёмы. Вам нужен человек который за всю свою карьеру ничего под
> себя не создал?!
Только желательно предупреждать человека заранее об этом и в стиле дать
возможность человеку похвастаться.
Posted via RSDN NNTP Server 2.1 beta
Re[8]: Как лучше построить собеседование?
От: enji  
Дата: 31.08.12 10:56
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Не понимаю, как такое может быть? Так или иначе код любого программиста

V>известен его начальнику. Либо человек пишет код так, как у нас принято,
V>либо увольняется.
Ну как тебе сказать. В идеале ты прав. Однако народа у нас в то время было мало, начальник был вообще не программистом и интересовала его функциональность, а не код.
В результате мы имеем:

Button1->Enabled=true;
Button3->Enabled=false;

StaticText2->Color=clWhite;
StaticText2->Caption="";

Button23->Enabled=false;
Button24->Enabled=false;
Button25->Enabled=false;

Form1->Edit96->Color=clSkyBlue;Form1->Edit96->Text="";
Form1->Edit38->Color=clSkyBlue;Form1->Edit38->Text="";
Form1->Edit84->Color=clSkyBlue;Form1->Edit84->Text="";


V>Понятно, что каждый человек пишет код со своими особенностями, но проект

V>всегда разбит на модули, а модули на более мелкие модули, все модули
V>покрыты тестами.
Опять таки, в идеале ты прав. Я тож так считаю и потихоньку мы движемся в этом направлении. Но даже сейчас мы далеки от светлого будущего

>> Так что на код хотелось бы посмотреть, даже с 3 годами опыта...

V>"Обжегшись на молоке..."
Возможно, но как еще определить? Брать и изгонять через месяц — имхо хуже...
Re: Как лучше построить собеседование?
От: Abyx Россия  
Дата: 31.08.12 10:56
Оценка:
Здравствуйте, enji, Вы писали:

E>- напишите функцию реверса строки

std::reverse.
если кандидат может ответить на остальные вопросы — строку он как-то развернет наверное

E>- чему равен размер struct {int a; char c;}

sizeof(T)

E>- зачем нужен volatile

хороший вопрос. очевидно затем чтобы передать переменную библиотечным функциям которые требуют volatile аргументы
или Вы про volatile у методов? даже хз

E>*(unsigned*)(buf+5)=123456;

вы уже уволили того кто так написал?

E>- #define MAX(a,b) — как написать, чем чревато?

макросы вместо функций? никак не писать.

E>- как написать шаблонную функцию max? Что она должна возвращать?

decltype(a > b ? a : b) , что же еще?

E>
E>//a.cpp: 
E>struct S{ string a; int b; } sa; 
E>//b.cpp: 
E>struct S{ int b; string a; } sb;
E>

E>чем чревато? Как обойти?
тут только одна проблема — using namespace std;

E>- зачем нужен виртуальный деструктор? Как обойтись без него в случае, когда надо удалить объект, не зная его точного типа?

действительно хорошй вопрос. тут можно о многом поговорить (типа интерфейсы vs абстрактные классы)

E>- Есть устройство, у которого могут быть разные каналы передачи данных (посл порт, tcp, twi, ...) и разные протоколы (отличаются форматом пакетов). Как бы вы спроектировали программу для него?

какую программу? `int main() {}` за программу считается?

общем эти вопросы вызывот только недоумение со стороны адекватных кандидатов

E>Дать "домашнее задание" по теме работы (~2-4 часа). К примеру: "Вот описание протокола управления устройством. Напишите программу, которая принимает стандартный ввод, выделяет из него команды и отвечает на них в стандартный вывод. Пока требуется реализовать поддержку только указанных команд (скажем, 4 или 5). Предусмотрите возможность добавления новых команд."

непонятно что можно оценить по программе в 200 строк.
задачу в такой постановке можно решить сотней способов, и многие из них субъективно покажутся "неправильными" — "много Си"/"много С++"/"выглядит как Java"
"возможность добавления новых команд" — это плохое условие, не указано сколько будет команд и насколько они сложные, в зависимости от этого решение может быть очень разным.

E>И оценить как работу проги (написать простой автотестер, который скормит кривые пакеты, случайный мусор, а также правильные команды и посмотрит на ответы), так и исходный код, наличие тестов,

всмысле "написать простой автотестер"? есть же готовые фреймворки

E>сборочного скрипта,

чего-чего? .sln чтоли?
E>репозитария dvcs
для задачи которая делается за 1 коммит (1 час), репозиторий не нужен
In Zen We Trust
Re[2]: Как лучше построить собеседование?
От: enji  
Дата: 31.08.12 11:13
Оценка:
Здравствуйте, Abyx, Вы писали:

A>если кандидат может ответить на остальные вопросы — строку он как-то развернет наверное

ок, выкидаем

E>>- чему равен размер struct {int a; char c;}

A>sizeof(T)
встречный вопрос кандидату, чему будет равен этот sizeof, от чего это зависит.

E>>- зачем нужен volatile

A>хороший вопрос. очевидно затем чтобы передать переменную библиотечным функциям которые требуют volatile аргументы
Странный ответ. Но если ответит так — спрошу про ввод\вывод или многопоточность...

E>>*(unsigned*)(buf+5)=123456;

A>вы уже уволили того кто так написал?
встречный вопрос — почему его надо уволить?

E>>- #define MAX(a,b) — как написать, чем чревато?

A>макросы вместо функций? никак не писать.
встречный вопрос — а если очень надо? Нет constexpr скажем...

E>>- как написать шаблонную функцию max? Что она должна возвращать?

A>decltype(a > b ? a : b) , что же еще?
встречный вопрос — а если нет с++11?

A>тут только одна проблема — using namespace std;

на самом деле нет — нарушено ODR — будет ub и скорее всего вылет в дебаге...

E>>- Есть устройство, у которого могут быть разные каналы передачи данных (посл порт, tcp, twi, ...) и разные протоколы (отличаются форматом пакетов). Как бы вы спроектировали программу для него?

A>какую программу? `int main() {}` за программу считается?
встречный вопрос — да, но когда ты научишь программу принимать команды — как сделать заменяемость каналов и протоколов7

A>общем эти вопросы вызывот только недоумение со стороны адекватных кандидатов

Ок, предложи более лучшие

A>непонятно что можно оценить по программе в 200 строк.

Ну например корректность ее работы. Подозреваю что там будет не 200 строк, а побольше все ж таки
A>задачу в такой постановке можно решить сотней способов, и многие из них субъективно покажутся "неправильными" — "много Си"/"много С++"/"выглядит как Java"
Да фиг с ним — главное чтобы она работала, была понятна окружающим и позволяла легко расширить себя.
A>"возможность добавления новых команд" — это плохое условие, не указано сколько будет команд и насколько они сложные, в зависимости от этого решение может быть очень разным.
А как иначе? Вот мне говорят — сделай такую-то функциональность. И все. Но завтра могут прийти и сказать сделать еще что-то. Я что скажу — идите лесом, вы вчера дали мне неверное задание? Приходится включать телепалку...

E>>И оценить как работу проги (написать простой автотестер, который скормит кривые пакеты, случайный мусор, а также правильные команды и посмотрит на ответы), так и исходный код, наличие тестов,

A>всмысле "написать простой автотестер"? есть же готовые фреймворки
Для чего? Чтоб сравнить два файла?

E>>репозитария dvcs

A>для задачи которая делается за 1 коммит (1 час), репозиторий не нужен
Я ж намекнул про расширение. Не нужен — ну поговорим, почему не нужен...
Re[11]: Как лучше построить собеседование?
От: Vzhyk  
Дата: 31.08.12 11:48
Оценка:
31.08.2012 13:31, enji пишет:

Про прошлые вопросы я уже все сказал, да и тут не раз уже их перетирали.

> Однако если он "адекватен" — то будет, иначе накой он пришел на

> собеседование?
Да на вас посмотреть.
Posted via RSDN NNTP Server 2.1 beta
Re[12]: Как лучше построить собеседование?
От: enji  
Дата: 31.08.12 12:05
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>> Однако если он "адекватен" — то будет, иначе накой он пришел на

>> собеседование?
V>Да на вас посмотреть.

Не вопрос, но нафига он остался на исп срок? Снова на нас посмотреть ?
Re[3]: Как лучше построить собеседование?
От: Abyx Россия  
Дата: 31.08.12 12:22
Оценка:
Здравствуйте, enji, Вы писали:

E>>>- чему равен размер struct {int a; char c;}

A>>sizeof(T)
E>встречный вопрос кандидату, чему будет равен этот sizeof, от чего это зависит.
тогда лучше сразу спросить от чего зависит,
или *как рассчитывается* — max(sizeof(int), default_align) + default_align (хотя хз чем это знать IRL)

E>>>- зачем нужен volatile

A>>хороший вопрос. очевидно затем чтобы передать переменную библиотечным функциям которые требуют volatile аргументы
E>Странный ответ. Но если ответит так — спрошу про ввод\вывод или многопоточность...
для атомарности — есть <atomic>,
а volatile, это так, вспомогательное средство чтоб гарантировать что в памяти всегда лежит самое свежее значение переменной, при помощи которого можно написать atomic типы

E>>>*(unsigned*)(buf+5)=123456;

A>>вы уже уволили того кто так написал?
E>встречный вопрос — почему его надо уволить?
за char[] и магическое число 5 вместо структуры с читабельным названием и именами полей

E>>>- #define MAX(a,b) — как написать, чем чревато?

A>>макросы вместо функций? никак не писать.
E>встречный вопрос — а если очень надо? Нет constexpr скажем...
очень надо бывает так редко, что можно и ?: обойтись

E>>>- как написать шаблонную функцию max? Что она должна возвращать?

A>>decltype(a > b ? a : b) , что же еще?
E>встречный вопрос — а если нет с++11?
а это звоночек
впрочем "Что она должна возвращать" зависит от того что мы хотим чтобы она возвращала.
это религиозный вопрос — разрешать возврат T& или ограничиться только const T& (ну и volatile не забыть)
хотя обсуждение религиозных вопросов это хорошо, потом не будете сожалеть что коллега пишет x.get() = 42;

A>>тут только одна проблема — using namespace std;

E>на самом деле нет — нарушено ODR — будет ub и скорее всего вылет в дебаге...
да, действительно, там же нетривиальный конструктор/деструктор

E>>>- Есть устройство, у которого могут быть разные каналы передачи данных (посл порт, tcp, twi, ...) и разные протоколы (отличаются форматом пакетов). Как бы вы спроектировали программу для него?

A>>какую программу? `int main() {}` за программу считается?
E>встречный вопрос — да, но когда ты научишь программу принимать команды — как сделать заменяемость каналов и протоколов7
т.е. вопрос в том как спроектировать фреймворк для передачи данных по разным протоколам? ответ сильно зависит от структуры пакетов и требований по производительности.
это может быть либо AbstractDeviceFacade+AbstractXXXFacade с виртальными методами на каждый пакет, либо свободные функции и структуры на каждый пакет — вариантов много

A>>"возможность добавления новых команд" — это плохое условие, не указано сколько будет команд и насколько они сложные, в зависимости от этого решение может быть очень разным.

E>А как иначе? Вот мне говорят — сделай такую-то функциональность. И все. Но завтра могут прийти и сказать сделать еще что-то.
однако обычно говорят что это либо "сейчас поддержать 5 пакетов, а завтра еще 500", или "сейчас 5 пакетов, а потом по 1-2 в месяц"
расширять можно по-разному

E>>>И оценить как работу проги (написать простой автотестер, который скормит кривые пакеты, случайный мусор, а также правильные команды и посмотрит на ответы), так и исходный код, наличие тестов,

A>>всмысле "написать простой автотестер"? есть же готовые фреймворки
E>Для чего? Чтоб сравнить два файла?
если у программы есть состояние, 1 большого теста мало, надо делать кучу тестов и в каждом сбрасывать состояние,
а то может получиться что программа работает только на одной начальной последовательности пакетов

A>>общем эти вопросы вызывот только недоумение со стороны адекватных кандидатов

E>Ок, предложи более лучшие
я бы вообще не задавал вопросов, а дал бы несколько больших кусков какогонить опенсорсного кода, и сказал бы сделать им "ревью" — рассказать что в этом коде хорошо, а что плохо
In Zen We Trust
Re[2]: Как лучше построить собеседование?
От: StanislavK Великобритания  
Дата: 31.08.12 12:34
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>Вы сами можете ответить на эти вопросы? Особенно на последний. Нет, я не про теорию, а про практику. Вы действительно хотите углубиться в обсуждение архитектур CPU, в понимание барьеров? Как мне кажется, лучше все-таки заменить этот вопрос на что-нибудь о sequence points, c какими-нибудь if (++count == 100).


не относящийся к теме вопрос. Какое отношение в c/c++ volatile имеет к барьерам? Оно же, вроде как, просто оптимизации на уровне компилятора запрещает? Спрашиваю, потому, что реально не знаю и интересно, что знающие люди скажут.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.