Projet

Général

Profil

Identifiants » Historique » Révision 30

Révision 29 (Patrice Nadeau, 2024-01-28 11:00) → Révision 30/38 (Patrice Nadeau, 2024-01-28 11:03)

# Objets 

 ## Règles 

 1. Nom 
     1. Écris en **anglais** avec au maximum **31** caractères : 
         
     1. Lettres minuscules 
         
     1. Nombres 
         
     1. Trait de soulignement 
     
 1. Commence par une lettre 
     
 1. Si plusieurs mots sont utilisés, ils sont séparées par des traits de soulignement 
 1. Déclaration 
     1. Un objet ayant une visibilité locale DOIT avoir le modificateur `static` dans sa déclaration 
     1. Un objet « obsolète », DOIT avoir : 
         1. Un des attributs suivants à sa déclaration : 
             1. `deprecated`  
             1. `unavailable` 
         1. Les commentaires Doxygen suivants :  
             sont ajoutés 
     1. `@deprecated` : Indications sur le remplacement à utiliser 
             1. `@since` : Depuis quel version le changement est apparue 
 1. Commentaires Doxygen suivants :  
     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 


 
 1. Un objet ayant une visibilité locale DOIT avoir le modificateur `static` dans sa déclaration 
 1. Un objet « obsolète », DOIT avoir : 
     1. Un des attributs suivants à sa déclaration : 
         1. `deprecated`  
         1. `unavailable` 
     1. Les commentaires Doxygen suivants :  
         1. `@deprecated` : Indications sur le remplacement à utiliser 
         1. `@since` : Depuis quel version le changement est apparue 

 ## Exemple 
 ``` c 
 /** 
  * @brief old_function 
  * @deprecated Cette fonction seras retirée dans une prochaine version, 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-systems/books/embedded-c-coding-standard> 
 * Génération de message lors de la compilation (`-Wall`)