Чи є гарною практикою зберігати основну функцію окремо у власному файлі?


14

Чи є гарною практикою наявність файлу main.c, який має в ньому головну функцію, і ніяких інших функцій, щоб усі інші функції могли поєднуватися?

Якщо немає остаточного правила, коли це добре робити, а не робити цього?

Відповіді:


15

В ідеалі вся робота, яку можна розглядати як частину коду, який можна повторно використовувати, повинен бути створений у формі бібліотеки . Робота на балансі - це додаток, який повинен бути окремим, де main()буде проживати.

Але main()поодинці не треба сидіти ізольовано. Функції на кшталт parse_arguments(argc,argv) повинні бути поряд з головною, а не окремою.


7

Наш стандарт кодування вимагає, щоб main () був у main.c. Іншими методами main.c, як правило, є обробники помилок високого рівня та допоміжні функції для основних (див. Відповідь @Dipan "parse_arguments", а також такі речі, як "display_help" тощо).

Хороше правило - це коли функція починає робити більше, ніж підтримувати запущений додаток і починати ділову логіку, настав час, коли він вийшов з main.c


4

Є два правила:

  1. Читач не повинен запитувати, де ви ховали main ().
  2. main () не повинен містити неактуальних клопотів.

Для реалізації стандарту кодування, що главному () завжди повинен бути розміщений у файлі під назвою main.c - це добре і звичайно. Цей файл, як і сам main (), не повинен містити зайвих безладів.

В ідеалі main () та main.c повинні містити лише наступне

  • Включає загальнопрограмні файли заголовків.
  • Код розбору аргументів argv, argc.
  • На безсторонніх системах: критичні настройки реєстру, налаштування вказівника стека тощо. Але лише у випадку, якщо main () є першою точкою входу для програми.
  • Закликає запустити ОС, або цикл, що викликає стан машини програми, або в розміщених настільних системах, створення та ініціалізація Windows, пов'язаних з основною темою GUI.
  • Внутрішні (статичні) функції, які викликаються з main (), обробляють будь-яке з перерахованого вище.
  • У розміщеній системі: поверніть 0.

1

Чиста точка введення в окремий файл робить потік коду легко зрозумілим та підтримуваним. У мене завжди була така звичка зберігати дуже маленьку і стисну функцію main () в іншому файлі, звідки я можу простежити кроки програми. Тільки для чистоти добре тримати її окремо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.