Projet

Général

Profil

Actions

Wiki » Historique » Révision 191

« Précédent | Révision 191/213 (diff) | Suivant »
Patrice Nadeau, 2026-01-18 20:10


Règles de codage C

Le langage C utilisé avec le compilateur GCC :

  • Standard C99 (-std=c99)
  • Extensions GNU
    • attribute((deprecated)) (-Wdeprecated-declaration)
    • attribute((noreturn))
    • #pragma GCC message ""
    • #pragma GCC warning ""
    • #pragma GCC error ""

Identifiants

  1. Ne DOIT PAS contenir plus de 31 caractères

    ANSI standards

    • a @ z
    • A @ Z
    • 0 @ 9
    • Trait de soulignement (__)
  2. En anglais américain :

    • Lettres
      • Macros :
        • Majuscules et minuscules

          La parie principale DOIT être en majuscule

      • Fonctions, variables, énumérations, structures, définition de type :
        • Minuscules
    • Nombre
    • Commence par une lettre
    • Si plusieurs mots sont utilisés, ils DOIVENT être séparées par des traits de soulignement
  3. Déclaration

    1. Un objet ayant une visibilité locale DOIT avoir le modificateur static
    2. Un objet « obsolète », DOIT avoir :
      1. Un des attributs :

        Génération de message lors de la compilation (-Wall)

        • deprecated
        • unavailable
      2. Les commentaires Doxygen :
        • @deprecated : Indications sur le remplacement à utiliser
        • @since : Depuis quel version le changement est apparue

Fichiers

Structure des répertoires et fichiers

Format selon la commande tree --charset ascii

.
|-- AUTHORS : Fichier contenant les noms et courriels des auteurs
|-- bin : Répertoire contenant le fichier exécutable et les librairies compilées
|-- ChangeLog : Fichier des changements
|-- config.h : Fichier optionel contenant les macros communes au programme dans son ensemble (-imacros)
|-- COPYING : Fichier de licence (standard GNU)
|-- docs : Répertoire de la documentation (.pdf)
|-- include : Répertoire des fichiers d’en-tête (.h)
|-- INSTALL
|-- lib : Répertoire des libraires externes (liens symboliques)
|-- Makefile.in : Fichier d'informations spécifiques du projet pour le Makefile
|-- NEWS :
|-- obj : Répertoire contenant les objets (.o)
|-- README : Fichier d'informations du projet, en format markdown
`-- src : Répertoire des fichiers sources (.c)

Fichiers sources

  1. Nom du fichier :
    • Un préfixe en anglais de 8 caractères maximum pouvant contenir :
      • Lettres minuscule
      • Chiffres
      • Trait de soulignement
    • DOIT contenir un des suffixe suivants :
      • .h : entête
      • .c : sources
  2. Contenus
    • Section Doxygen :
      1. @file : Le nom du fichier
      2. @brief: Une brève description
      3. @version: Le numéro de version
      4. @date: La date de dernière modification
      5. @author: Une liste des participant(e)s et leur courriel
      6. @copyright: La liste des années et participant(e)s
    • Les fichiers d’entête contiennent en plus
      1. Une définition macro pour éviter de ré-inclure le fichier (https://fr.wikipedia.org/wiki/Include_guard).

Style

Commentaires

  1. Précède l’élément à documenté, avec la même indentation
  2. En minuscules et commence par une majuscule
  3. Phrase complète en français
  4. Sur une ou plusieurs lignes
  5. De style C (/*... */)
  6. Doxygen DOIT aussi être utilisé
    1. Les « décorations » (gras, italique, etc.) sont faites avec la syntaxe Markdown

Macros et préprocesseur

Énumérations

Typedef

Variables

Structures

Fonctions

Atmel AVR

Mis à jour par Patrice Nadeau il y a un jour · 191 révisions