2009-01-12 6 views
3

J'ai seulement dû coder en C à quelques reprises, et il semble que chaque fois que je le fais, il devient une bête ingérable. J'ai fait la plupart de ma programmation en C# et .Net donc je suis très habitué à l'architecture de style de classe, mais je n'arrive pas à comprendre l'organisation dans les applications C. Devrais-je mettre des fonctions qui sont liées dans un certain fichier, mettre les définitions de fonctions dans un fichier et les traiter dans un autre, etc. Existe-t-il de bonnes ressources sur ce sujet?Quelle est la meilleure façon de planifier et d'organiser le développement d'une application en C?

Voir aussi: Struggling with C coming from Object Oriented land?

Répondre

7

Voici une analogie qui pourrait vous aider:

Une classe est une structure de données de quelque sorte et un ensemble de fonctions pour accéder et manipuler ces données. Le langage c ne fournit pas de sucre syntaxique pour organiser cette relation pour vous, mais vous pouvez toujours construire votre code autour de cette idée. Alors, faites-le: concevez votre projet autour d'un tas de "classes".

organisation Code

prend généralement l'une des deux formes:

  • Chaque fonction reçoit un fichier en-tête (interface) avec une extension .h et un fichier mise en œuvre avec une extension .c
  • Chaque « classe » (c.-à- ensemble de fonctions connexes) obtient un fichier d'en-tête et un fichier d'implémentation.

Alors, vous savez déjà comment faire ...

3

C Interfaces and Implementations par David Hanson explique un schéma d'organisation utilisable agréable dans le premier chapitre (si je me souviens bien) et il montre en usage dans les autres bibliothèques de développement importantes.

2

L'ancienne méthode de codage C "structured programming" consiste à les moduler en fichiers. Au lieu d'avoir du code dans les objets, assurez-vous de mettre tout le code associé dans des fichiers individuels.

Si vous considérez un fichier comme un objet pauvre, vous serez surtout là pour organiser vos applications C comme vous le faites avec vos C#.

2

Depuis ont de l'expérience en C#, vous pouvez être intéressé par les réponses à ma question SO: "Object-Orientation in C". S'ils vous intéressent, il peut être utile de jeter un oeil aux réponses à la question connexe: "Can you write object oriented code in c?". Si vous prévoyez d'utiliser un schéma comme l'un de ceux mentionnés dans les réponses aux questions ci-dessus, gardez à l'esprit que la chose la plus importante est votre conception, le sucre syntaxique qui peut/ne peut pas le rendre joli.

Questions connexes