Иногда Ответ Не «42»

Доброй пятницы, хабралюди.

У нас с друзьями есть такая традиция – мы собираемся вместе и программируем вместе.

Раньше у нас была такая работа, но сейчас это просто традиция — генерация кода.

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

Код будет ближе к концу статьи, но не спешите листать вниз, надо сначала объяснить, что это за код и как мы к нему пришли.

Сама задача — самым неожиданным способом получить число 0х17.

Иногда ответ не «42»

Внимание! Этот пост оскорбляет чувство прекрасного и практику программирования на C. Читайте, воспринимайте и комментируйте на свой страх и риск.

Вы любите магические числа в коде? Иногда смотришь на какой-нибудь код и видишь a=b^7. Почему именно 7? Что это за число, откуда оно взялось, что оно означает? Так много вопросов и так мало ответов, если только кто-то не удосужился прокомментировать.

Существует несколько способов разрешения такого рода неопределенности:

  1. Оставить комментарий.

    Но комментарии для слабаков – это не по-нашему.

  2. Создайте переменную или макрос со значимым именем.

    а = б ^ HEARTBEAT_MASK_BYTE. Это уже хорошо, но может быть и лучше, правда?

  3. Покажите расчетным путем путь, который привел к этому числу.

    Здесь! Это отличный способ.

    Но не всегда применимо, как, например, в рассматриваемом коде.

    В нем 7 — полноценный и независимый элемент, не являющийся результатом каких-либо операций.

Зачем рассматривать другие методы? Возьмем последний и пойдем! Но, как я уже сказал, есть проблема — не всегда есть адекватный способ показать путь к числу с помощью вычислений.

Но задача была избавиться от магического числа, а не сделать это логически.

Более того, мы доведем задачу до абсурда — получим числа самым непостижимым образом.

Программно-аппаратный комплекс в виде вызова функции rand() решил, что мы избавимся от магического числа 0x17. Команда погромщиков, включая меня, Виконт и [УДАЛЕНО] начали творить.

0x17 способы получить 0x17: Теги: #C++ #C++ #0x17 оттенков C #не делайте этого #Ненормальное программирование #Иначе код причинит боль #Ненормальное программирование #C++ #C++

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.