Linux программирование в примерах
Шрифт:
Обычно с такими строками используется переменная, представляющая определенное состояние. Довольно просто, и это рекомендуется многими книгами по программированию на С, определять с помощью
На уровне исходного кода это выглядит замечательно. Но опять-таки, есть проблема, когда вы пытаетесь просмотреть код из GDB:
Здесь вы также вынуждены возвращаться обратно и смотреть в заголовочный файл, чтобы выяснить, что означает 2. Какова же альтернатива?
Рекомендация: Для определения именованных констант используйте вместо макросов перечисления (enum). Использование исходного кода такое же, а значения enum может выводить также и отладчик.
Пример, тоже из
Теперь при просмотре state из GDB мы видим что-то полезное:
15.4.1.3. При необходимости переставляйте код
Довольно часто условие в
Рекомендация: перепишите исходный код, явно используя временные переменные, в которых сохраняются значения или условные результаты, так что вы можете проверить их в отладчике. Первоначальный код должен быть сохранен в комментарии, чтобы вы (или программист
Вот конкретный пример: функция
(Номера строк приведены относительно начала этой процедуры, а не файла.) Эта функция является основой главного цикла обработки
Возвращаемое
Строки 20–30 представляют переписанный код, который вызывает каждую функцию отдельно, сохраняя возвращаемые значения в локальных переменных, чтобы их можно было напечатать из отладчика. Обратите внимание, как в строке 23 этим переменным каждый раз присваиваются известные, ошибочные значения: в противном случае они могли бы сохранить свои значения от предыдущих итераций цикла. Строка 27 является тестом завершения, поскольку код изменился, превратившись в бесконечный цикл (сравните строку 22 со строкой 16), тест завершения цикла является противоположным первоначальному.
"Зарубежная фантастика 2024-3". Цикл Люди льда". Компиляция. Книги 1-24
Зарубежная фантастика 2024
Фантастика:
фэнтези
героическая фантастика
рейтинг книги
Второгодка. Книга 2. Око за око
2. Второгодка
Фантастика:
героическая фантастика
альтернативная история
фэнтези
рейтинг книги
Червь
Фантастика:
фэнтези
героическая фантастика
альтернативная история
рейтинг книги
Душехранитель
Фантастика:
боевая фантастика
ужасы и мистика
рейтинг книги
Отморозок 5
5. Отморозок
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Блюдо подают холодным
1. Блюдо подают холодным
Фантастика:
рпг
попаданцы
фэнтези
рейтинг книги
Паслен
1. Паслен
Любовные романы:
любовно-фантастические романы
эро литература
рейтинг книги
Листик, приключения продолжаются.
Фантастика:
фэнтези
ужасы и мистика
рейтинг книги