Должны ли прототипы следовать порядку функций?

programming c prototype

Я определяю прототипы до вызова функций.

Должен ли порядок прототипов соответствовать порядку функций в коде?

Я бы хотел отсортировать прототипы в алфавитном порядке, при этом мне неважно, в каком порядке они появляются в коде.

Я ищу общепринятую или передовую практику.

, 👍-1


2 ответа


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

0

В этом отношении нет конкретных рекомендаций.

Остальная часть этого ответа в основном основана на мнениях и, следовательно, не соответствует теме этого сайта.

Если у вас есть классы, то общепринято, но ни в коем случае не обязательно, универсально или «плохо» не делать группировать публичные, приватные и защищенные методы вместе.

На самом деле, группируйте их так, чтобы это было удобно для вашей программы, объединяя функции, связанные с ней. Если у вас так много методов/функций, что их нужно тщательно упорядочить, разделите их на группы по функциональности — используя классы или что-то ещё.

,

1

Должен ли порядок прототипов соответствовать порядку функций в коде?

Нет.

Я бы хотел отсортировать прототипы в алфавитном порядке, при этом мне неважно, в каком порядке они появляются в коде.

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

Я ищу общепринятую или передовую практику.

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

Если вы хотите узнать о передовой практике в целом, предлагаю вам задать вопрос на Stack Overflow.


Несколько лет назад я программировал для Burroughs Medium Systems на BPL (язык программирования Burroughs), языке, похожем на Algol (на который Pascal немного похож).

В BPL нельзя было использовать функцию или переменную, которые не были определены ранее. Таким образом, «главная» функция всегда находилась в конце исходного файла. Следовательно, основные функции (вызываемые основной функцией) располагались перед ней, а второстепенные функции появлялись ещё раньше. Таким образом, можно было примерно определить иерархию вызовов функций по порядку их появления.

В C (и C++) прототипы функций не нужны, если весь код находится в одном файле и вы следуете этому соглашению. Размещайте основной код в конце, а вызываемые им функции — перед ним. Прототипы функций нужны только в исключительных случаях, когда A может вызвать B, а B — A.

,