Модульное кодирование. Какие типы фрагментов кода нужно преобразовать в файлы библиотек? Обоснование и методы?

Я работаю над документацией и объединяю два фрагмента кода для тестирования частей более крупного проекта.

Я должен прокомментировать и сделать код понятным для людей, которые будут использовать его позже, и убедиться, что он модульный. Я должен создавать файлы заголовков, чтобы ссылаться на фрагменты функций в основном коде только из #include(s).

Я понимаю, что в C++ соглашение заключается в том, что для каждого файла заголовков (?), .h, есть .cpp, где . h — это заголовочный файл, в котором объявляется все содержимое, и что .cpp — это место, где вы определяете .h, т.е. выполнение.

Мой руководитель сказал мне поместить больше частей кода в библиотечные файлы, потому что в будущем будут добавлены дополнительные компоненты -

но сбивает с толку, потому что вся длина исходит из использования уже существующих библиотечные файлы, просто определенный шаблон вызова предопределенных функции.

Если я помещу файлы в .h, как мне сослаться на все вызовы? Сделать void setup () {}?

Скомпилированный код сейчас составляет 348 строк. Все, что у него есть, это несколько #include(s), код для калибровки и считывания с 2 разных датчиков с использованием протоколов I2C и SPI, с 1 общим мастером Adafruit Bluefruit nRF52832 и комментариями со ссылками на таблицы данных.

Громоздкость заключается в настройках и различных способах представления данных (есть 24 строки только для распечатки данных с 1 датчика).

Должен ли весь код просто вызывать встроенные функции из библиотечного файла? Чтобы люди, читающие код, не видели деталей?

, 👍0


1 ответ


Лучший ответ:

0

Очень субъективно, что следует и не следует помещать в библиотеку.

Я использую простые правила:

  • Если это атомарная часть кода, например драйвер оборудования, это библиотека.
  • Если это что-то, что можно использовать в нескольких скетчах, это библиотека.

Возможно, такие вещи, как параметры конфигурации, можно поместить в заголовочный файл (не в библиотеку, а в заголовочный файл в папке скетча).

Возможно, вы могли бы разделить части скетча на файлы C++ или файлы INO внутри скетча (не библиотека — файлы в папке скетча, а использовать файлы INO проще, так как вам не нужны файлы заголовков, это делает IDE все для вас), чтобы сгруппировать вещи логически вместе и упростить управление (весь код ЖК-дисплея в одном файле, весь код датчика температуры в другом файле и тому подобное).

,

Спасибо @Majenko. Буду больше изучать примеры кода и пробовать кое-что., @ThermoRestart

Когда вы говорите файл заголовка, вы имеете в виду файлы C++ .h и .cpp. Я должен определить некоторые функции в .h, а затем выполнить реализацию в .cpp, как в обычном C++. Не знаю почему, но когда я услышал заголовочный файл, мне показалось, что это всего лишь один файл. https://www.youtube.com/watch?v=2pxYEwaMtaI, @ThermoRestart

.ha и .CPP не связаны парами. Вы можете иметь одно без другого. Файлы .h — это удобный способ обмена фрагментами кода между файлами .c и .CPP. Файлы .CPP компилируются., @Majenko

C++ не имеет понятия "заголовочный файл". Все это обрабатывается препроцессором C (который ошибочно называется CPP). Когда вы #include файл, он буквально дословно включается в этот момент. C++ не знает об этом - он видит только содержимое., @Majenko

Спасибо - Маженко. Посмотрел еще материал по предварительной обработке и https://www.tutorialspoint.com/cprogramming/c_header_files., @ThermoRestart