È buona norma mantenere la funzione principale separata nel proprio file?


14

È buona norma avere un file main.c che contiene solo la funzione principale e nessuna altra funzione in modo che tutte le altre funzioni possano essere interfacciate?

Se non esiste una regola definitiva, quando è bene farlo e non farlo?

Risposte:


15

Idealmente, tutto il lavoro che può essere considerato parte del codice riutilizzabile dovrebbe essere creato sotto forma di libreria . Il lavoro di equilibrio, è un'applicazione che dovrebbe essere separata dove main()risiederà.

Ma da main()solo non deve sedersi in isolamento. Funzioni come parse_arguments(argc,argv) dovrebbero essere insieme a principale piuttosto che separate.


7

Il nostro standard di codifica richiede che main () sia in main.c. Altri metodi in main.c tendono ad essere gestori di errori di alto livello e funzioni di supporto per main (fare riferimento a @Dipan risposta "parse_arguments", come ad esempio "display_help" ecc.

Una buona regola da seguire è quando una funzione inizia a fare di più che supportare l'applicazione in esecuzione e iniziare a fare la logica di business, è ora che sia fuori da main.c


4

Esistono due regole pratiche:

  1. Il lettore non dovrebbe chiedersi dove hai nascosto main ().
  2. main () non dovrebbe contenere disordine irrilevante.

Per implementare uno standard di codifica affermando che main () dovrebbe sempre trovarsi in un file chiamato main.c è una pratica sia buona che comune. Questo file, così come main () stesso, non deve contenere disordine inutile.

Idealmente main () e main.c dovrebbero contenere solo i seguenti elementi

  • Include file di intestazione a livello di programma.
  • Argomento che analizza il codice di argv, argc.
  • Su sistemi hostless: impostazioni di registro critiche, impostazioni del puntatore dello stack, ecc. Ma solo se main () è il primo punto di ingresso per il programma.
  • Chiamate per avviare il sistema operativo o un loop che chiama la macchina a stati del programma o in sistemi desktop ospitati, creazione e inizializzazione di finestre relative al thread GUI principale.
  • Funzioni interne (statiche) che vengono chiamate da main (), gestendo una delle precedenti.
  • Su un sistema ospitato: restituire 0.

1

Un punto di ingresso pulito in un file separato consente di comprendere e gestire facilmente il flusso di codice. Ho sempre avuto l'abitudine di mantenere una funzione main () molto piccola e concisa in un file diverso da dove in poi posso tracciare i passaggi del programma. Solo per motivi di pulizia è bene tenerlo separato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.