Должны ли прототипы следовать порядку функций?
Я определяю прототипы до вызова функций.
Должен ли порядок прототипов соответствовать порядку функций в коде?
Я бы хотел отсортировать прототипы в алфавитном порядке, при этом мне неважно, в каком порядке они появляются в коде.
Я ищу общепринятую или передовую практику.
@MaxG, 👍-1
2 ответа
Лучший ответ:
В этом отношении нет конкретных рекомендаций.
Остальная часть этого ответа в основном основана на мнениях и, следовательно, не соответствует теме этого сайта.
Если у вас есть классы, то общепринято, но ни в коем случае не обязательно, универсально или «плохо» не делать группировать публичные, приватные и защищенные методы вместе.
На самом деле, группируйте их так, чтобы это было удобно для вашей программы, объединяя функции, связанные с ней. Если у вас так много методов/функций, что их нужно тщательно упорядочить, разделите их на группы по функциональности — используя классы или что-то ещё.
Должен ли порядок прототипов соответствовать порядку функций в коде?
Нет.
Я бы хотел отсортировать прототипы в алфавитном порядке, при этом мне неважно, в каком порядке они появляются в коде.
Это можно сделать. Думаю, так будет проще найти прототип, но в большинстве современных редакторов есть функции поиска.
Я ищу общепринятую или передовую практику.
Поскольку среда разработки Arduino IDE автоматически генерирует прототипы функций, общепринятой практикой является их полное отсутствие.
Если вы хотите узнать о передовой практике в целом, предлагаю вам задать вопрос на Stack Overflow.
Несколько лет назад я программировал для Burroughs Medium Systems на BPL (язык программирования Burroughs), языке, похожем на Algol (на который Pascal немного похож).
В BPL нельзя было использовать функцию или переменную, которые не были определены ранее. Таким образом, «главная» функция всегда находилась в конце исходного файла. Следовательно, основные функции (вызываемые основной функцией) располагались перед ней, а второстепенные функции появлялись ещё раньше. Таким образом, можно было примерно определить иерархию вызовов функций по порядку их появления.
В C (и C++) прототипы функций не нужны, если весь код находится в одном файле и вы следуете этому соглашению. Размещайте основной код в конце, а вызываемые им функции — перед ним. Прототипы функций нужны только в исключительных случаях, когда A может вызвать B, а B — A.
- устаревшее преобразование из строковой константы в 'char*'
- как быстро loop() работает в Arduino
- как отправить аргумент объектам ESP8266WebServer в функции
- "function" was not declared in this scope (вызвана при настройке)
- Arduino синтаксический анализ строки с использованием sscanf
- Объявление переменной внутри основного цикла
- Как преобразовать символ Unicode в «Unicode HEX Position» в Arduino
- Как создать проект ардуино с несколькими исходными файлами?