LINUX.ORG.RU

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

 ,


0

6

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

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

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

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

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

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

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

Обучаются они все в стране янков.

Кстати, или вот Ruby сделал японец на английском языке... Почему не на японском? ))

beaver
()
Ответ на: комментарий от sncpzr

Нелепое, несистемное нагромождение рандомных символов

Там вполне всё логично. Я уже упоминал инфиксную запись методов. Это очень неплохо.

Это какие, например?

Ну хотя бы попытки средствами языка изобразить то, что в языках с динамическими типами делается по умолчанию. И там многое другое. Как ни крути - сильно мностровый язык и неуклюжий.

solom
()
Ответ на: комментарий от sncpzr

Судя по коду ты что-то понимаешь, если не спастил, конечно.

Спасибо, гуру, что уделил внимание мне, ничтожнейшему

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

Вы слишком придираетесь к словам. «Указатель и есть значение» - имелось ввиду, что это не указатели. Расхождений в логике нет.

Не верно

Что - не верно? Что функция не принимает параметров? Её тип верен, иначе бы компилятор отругался бы на ошибку типов.

solom
()
Ответ на: комментарий от annulen

Писал бы на питоне свои поделки, глядишь больше бы достиг за эти двадцать лет.

:D

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