Norme

Norme Premium gy Djgry29 vapTa 15, 2015 7 La norme de 42 version 2. O. O Mathieu mathieu@staff. 42. fr Gaëtan gaetan@staff. 42. fr Résumé: Ce document décrit la norme C en vigueur à 42. IJne norme de programmation définit un ensemble de règles régissant l’écriture d’un code. Il est obligatoire de respecter la norme lorsque vous écrivez du C à 42. Sni* to View Table des matières 1. 1 1. 2 1. 3 1. 4 Avant-propos or7 Pourquoi imposer une norme ? La norme dans vos rendus Conseils Disclamers Convention de dénomination . Formattage

Paramètres de fonction . . studieux et appliqués, et la norme deviendra un automatisme sous peu. Des bugs existent forcément sur la « Norminette », merci de les reporter sur la section du forum de l’intra. Néanmoins, la « Norminette » fait foi et vos rendus doivent s’adapter à ses bugs 2 Chapitre Il Convention de dénomination partie obligatoire • Un nom de structure doit commencer par s • Un nom de typedef doit commencer par t_. • Un nom d’union doit commencer par u _. • un nom d’enum doit commencer par e • Un nom de globale doit commencer par g_. ??? Les noms de variables, de fonctions doivent être composés exclusivement de minuscules, de chiffres et de ‘_’ (Unix Case). • Les noms de fichiers et de répertoires doivent être composés exclusivement de minuscules, de chiffres et de ‘ ‘ (Unix Case). • Le fichier doit être compilable. • Les caractère ne faisant pas partie de la table ascii standart ne sont pas autorisés. Partie conseillée PAGF3C,F7 utilisation de variable globale doit être justifiée. Tous vos fichiers devront commencer par le header standard de 42 dès la première igne. ?? Chaque fonction doit faire au maximum 25 lignes sans compter les accolades du bloc de la fonction. • Chaque ligne ne peut faire plus de 80 colonnes, commentaire compris. Attention : une tabulation ne compte pas pour une colonne mais bien pour les n espaces qu’elle represente. • Une seule instruction par ligne. • une ligne vide ne doit pas contenir d’espace ou de tabulation. • Une ligne ne devrait jamais se terminer par des espaces ou des tabulations. • Quand vous rencontrez une accolade ouvrante ou fermante ou une fin de structure e controle, vous devez retourner à la ligne. ?? Vous devez aussi indenter votre code avec des tabulations de 4 espaces. (Ce n’est pas équivalent à 4 espace, ce sont bien des tabulations. ) • Chaque virgule ou point-vi ule doit être suivi d’un espace si nous ne sommes pas doivent être collés au nom de la variable. • une seule déclaration de variable par ligne. • On ne peut faire une déclaration et une instanciation sur une même ligne, à l’exception des varlables globales et des varlables statiques. • Les déclarations doivent être en début de fonctions et doivent ?tre séparées de l’implémentation par une ligne vide. ?? Aucune ligne vide ne doit être présente au milieu des déclarations ou de l’implémentation. • Vous pouvez retourner à la ligne lors d’une même instruction ou structure de contrôle, mais vous devez rajouter une indentation par parenthèse ou opérateur daffectation. Les opérateurs doivent être en début de ligne. 4 toto = 42 +5 if (toto O titi 2 (tutu 3 Il tata rara 3) Version 2. 0. 0 //RIGHT (Mais lecture difficile :P) //RIGHT (Mais lecture difficile • La multiple assignation est interdite. ligatoire • Vous devez mettre une tabulation lorsque vous déclarez une struct, enum ou union. • Lors de la décla ation d’une variable de type struct enum ou union vous ne mettrez qu’un espace dans le type. • Vous devez utiliser une tabulation entre les deux paramètres d’un typedef. • Lorsque vous déclarez une struct, union ou enum avec un typedef, toutes les règles s’appliquent et vous devez aligner le nom du typedef avec le nom de la struct, union ou enum. • Vous ne pouvez pas déclarer une structure dans un fichier . c.

Headers Partie obligatoire ?? Seuls les inclusions de headers (système ou non), les définitions, les defines, les prototypes et les macros sont autorisés dans les fichiers headers. • Tous les includes de . h doivent se faire au début du fichier (. c ou • On protégera les headers contre la double inclusion. Si le fichier est ft_foo. h, la macro témoin est ‘FT FOO H’. • Les prototypes de fonctions doivent se trouver exclusivement dans des fichiers . h. *AGF 6 rif 7 Choses Interdites ! • Vous n’avez pas le droit dutiliser : for (parce que c’est tombé sur face) do… hile switch ase goto • Les opérateurs ternaires ‘ imbriqués 6 Commentaires • Les commentaires peuvent se trouver dans tous les fichiers source. • Il ne doit pas y avoir de commentaires dans le corps des fonctions. • Les commentaires sont commencés et terminés par une ligne seule. Toutes les lignes intermédiaires s’alignent sur elles, et commencent par • Pas de commentaire en //. • Vos commentaires doivent être en anglais et utiles. • Le commentaire ne peut pas ‘ustifier une fonction bâtarde. • Le commentaire ne peut pas justifier une fonction bâtarde.