LINUX.ORG.RU

Как читать и понимать С/C++ код?

 ,


0

6

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

https://www.youtube.com/watch?v=5P5TmcGj9Mk

И после его посмотра у меня возник один вопрос. Вопрос не праздный, потому что я сейчас хочу выкинуть на свалку мои единоличные двадцатилетние бодания с языком C++. Я хочу отказаться от плюсов и забыть их как страшный сон. Матерые плюсисты мне говорят: ты тупой, ты не наш, ты позоришь светлое имя языка C++. Если ты за такое время не смог осилить язык, зачем ты мучаешься? В твоей тупости виноват только ты и твои родители, но не язык. Ты неспособен обучаться, смирись с этим и иди работать таксистом (я уже почти готов).

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

unsigned short *(*(**bazz[][7])())[];

Скажите мне, великие сплюсовики, вы действительно можете представить себе в голове структуру этого выражения, как она размещается в памяти, и что на что указывает? Или, когда ее разбираете, просто произносите слова? Мне это очень интересно, а узнать не у кого, и эту тонкость автор ролика опускает, вскользь говоря что пример академический. Когда меня такое спрашивают на собеседованиях, я честно пытаюсь представить в голове всю структуру, и чувствую, что торможу на третьем уровне «который...», после чего мое понимание заканчивается. Я могу оттараторить с грехом пополам парсинг "по спирали", но у меня понимания структуры не будет, это какой-то непредставляемый монстр. Неужели представление есть у автора ролика?

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

Rust - это человеческие плюсы с ФП.

Да ладно, ничего там из плюсов нет. А человеческое, разве что, только cargo.

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

Учитывая, что он создавался как замена плюсам - это очень странное утверждение. Те же плюсы, только проще, без си-легаси и с большими гарантиями времени компиляции. Никакой смены парадигм и прочего.

RazrFalcon ★★★★★
()
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Какой ещё парадигмы? Rust - это человеческие плюсы с ФП.

Во-первых, с ФП, а во-вторых со встроенной парадигмой владения ресурсом by design.

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

со встроенной парадигмой владения ресурсом

Она и в C++ такая же. Просто в Rust компилятор думает за человека.

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