Как быстрее и качественнее читать код на языке Си?
Добрый день. Увлекаюсь языком Си. Знаю его не на 200%. Немного пишу и читаю программы. Хотел бы, что бы кто нибудь поделился опытом, "как он изучает программы на Си". Мне кажется, что я делаю это медленно. Иногда путаюсь и бросаю. Есть ли какие то эффективные способы чтения программ на СИ, может быть у вас какой то свой алгоритм? Или какой то хороший отладчик...
Я делаю так:
смотрю на структуру исходников, на хэдер файлы, на Makefile.
какое то время смотрю содержание всех файлов. (если проект не совсем простой здесь уже начинается апатия).
начинаю читать с точки входа в программу, прыгаю по функциям, оставляю комментарии, потому, что чем дальше захожу, тем больше забываю , что было раньше. (возможно стоит какие то графы чертить для себя?)
если совсем не понятно пытаюсь собрать программу и хожу отладчиком. (если все на макросах то не пытаюсь уже пробовать это).
Я понимаю, что возможно мне не хватает усидчивости, но все же.
В общем, есть ли какие то советы, полезные книги или курсы. Может кто то как то графы чертит что бы не путаться?
Может кто то как то графы чертит что бы не путаться?
Эти графы называются UML-диаграммы. И да, они могут помочь. Есть и другие типы диаграмм, да
Но я бы не пытался никогда раскручивать программу именно от точки входа. Логичнее мне кажется исходить от какого то конкретного функционала и искать как он реализован.
А я первый раз про SDL вижу. Для такого вроде как UML есть. На нем вообще можно много всего разметить. Но по сути это всего навсего набор соглашений. Для себя можно извращаться как душе угодно.
Никак. Читать и думать. Нет никакой формулы счастья. Искусство неформализуемо =) К тому же какие-то сложные абстракции понять невозможно не зная при этом предметную область.
Ты не поймёшь код, в котором есть какая-то структура данных или алгоритм, который ты не знаешь. Не поймёшь мультитрединг, если не знаешь как он устроен. Не поймешь как работает криптография, если не знаешь теории. И т.д. и т.п.