Projet

Général

Profil

Identifiants » Historique » Révision 46

Révision 45 (Patrice Nadeau, 2025-03-23 12:05) → Révision 46/47 (Patrice Nadeau, 2025-03-23 12:07)

# Identifiants 
 1. En **anglais américain**, maximum de **31** caractères : 
     1. Lettres 
         * Macros : 
             * Majuscules et minuscules 
                 > La parie principale DOIT être en majuscule 
         * Fonctions, variables, énumérations, structures, définition de type :  
             * Minuscules 
     1. Nombre 
     1. Commence par une lettre 
     1. Si plusieurs mots sont utilisés, ils DOIVENT être séparées par des traits de soulignement 
 1. Déclaration 
     1. Un objet ayant une visibilité locale DOIT avoir le modificateur `static`  
     1. Un objet « obsolète », DOIT avoir : 
         1. Un des attributs : 
             > Génération de message lors de la compilation (`-Wall`) 
             * `deprecated`  
             * `unavailable` 
         1. Les commentaires Doxygen :  
             * `@deprecated` : Indications sur le remplacement à utiliser 
             * `@since` : Depuis quel version le changement est apparue 
 1. Commentaires Doxygen :  
     1. `@brief` : Description obligatoire 
     1. `@sa` : Lien vers une autre item (see also), facultatif 
     1. `@todo` : Notes sur les tachés à faire, facultatif 
     1. `@bug` : Notes sur les bogues présents, facultatif 
     1. La gradations des notes et remarques se fait selon : 
         * `@remark` : Non importante 
         * `@note` : Général 
         * `@attention` : Important 
         * `@warning` : Conséquence négative 

 ## Exemple 
 ``` c 
 /** 
  * @brief old_function 
  * @deprecated Cette fonction seras retirée, utiliser new_function à la place 
  * @since Version x.x.xx 
  */ 
 int old_function(void) __attribute__((deprecated)); 

 /** 
  * @brief old_function 
  * @deprecated Cette fonction est retirée, utiliser new_function à la place 
  * @since Version x.x.xx 
  */ 
 int old_function(void) __attribute__((unavailable)); 
 ``` 

 

 ## Justification 
 * Linux kernel coding style : <https://www.kernel.org/doc/html/v4.10/process/coding-style.html#naming> 
 * GNU Coding Standards <https://www.gnu.org/prep/standards/html_node/Writing-C.html#Writing-C> 
 * Embedded C Coding Standard : <https://barrgroup.com/embedded-c-coding-standard> <https://barrgroup.com/embedded-systems/books/embedded-c-coding-standard>