870 читали · 1 год назад
Основы С++: Директивы препроцессора и знакомство с макросами
Для того, чтобы ваш код превратился посредством компиляции в рабочую программу, он должен пройти несколько важных преобразований. Они называются этапами трансляции. Подробнее о трансляции можно почитать в официальной документации вот здесь. В одну из фаз трансляции в работу включается препроцессор. Когда начинается его работа, он просматривает файл кода в поисках директив, оставленных программистом для него. После чего, препроцессор исполняет все директивы. В каждой программе с вводом и выводом...
141 читали · 1 год назад
Основы С++: Способы защиты заголовочных файлов
В статье "Предварительное объявление функций и изменение порядка их определения" мы рассмотрели правило одного определения (ODR), которое гласит что каждая переменная или функция может иметь только одно определение. Повторная идентификация функции, закономерно, приведет к ошибке компиляции. Такую ошибку легко исправить, если... Если она не вызвана определением через #include, то есть через заголовочные файлы. В случае с заголовочными файлами, можно легко попасть в ситуацию, когда внутри заголовка, который вы решили использовать, включен еще один заголовок...