Qu'est ce qu'un bon projet de la structure en C
Je travaille en Java/J2ee projets, dont j'ai suivi l'Maven de la structure.
Je veux développer [dire un interpréteur de ligne de commande sous linux {ubuntu}] dans C.
Je n'ai jamais développer des projets en C. je veux savoir ce que la structure d'un projet je dois suivre.
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de "standard" pour le projet C dans cet aspect. Certes, si votre projet est de petite taille, puis souvent tout sera placé dans un répertoire unique.
Vous pouvez essayer de télécharger certains populaire open-source C de projets et de prendre un coup d'oeil à leur code.
À un moindre niveau, le code doit être modulaire. Chaque module (qui en C se manifeste généralement dans une structure de données avec un ensemble de fonctions pour agir sur lui) a sa propre paire de .h et .c fichiers, avec l' .h fichier de l'interface publique visible pour les clients du module, et le .c fichier en cours de la mise en œuvre privée.
Comme Eli Bendersky sayd, il dépend strictement quelle est la complexité de votre projet.
La norme suggère de diviser le plus possible dans les bibliothèques. Le point est que vous pouvez réutiliser vos bibliothèques ailleurs. Par exemple c'est un projet de la mine:
Personnellement, je préfère mettre toutes les bibliothèques dans un
libs
répertoire. Chaque bibliothèque à l'exception insignifiants a son propre en-tête de répertoire et les exportations d'un en-tête public par le biais d'un répertoire ayant le même nom de la bibliothèque.Le fichier source du programme lui-même est placée dans le répertoire src.
Séparer les fonctions dans les modules: .c des fichiers avec des détails de mise en œuvre/définitions jumelé avec .h les fichiers avec déclarations.
Essayez de ne pas polluer les espaces de noms en utilisant statique pour les fonctions communes et d'un module de préfixe pour les symboles externes.
Créer des bibliothèques si vous avez des fonctionnalités qui peuvent être encapsulés et réutilisés.
Une suggestion:
Regarder Nginx sur github et de parcourir la structure du projet en ligne.
Vous pouvez vous référer à la OpenSSL de la structure de Projet. C'est un open source et dispose d'une bonne structure de projet.