Projet

Général

Profil

Identifiants » Historique » Révision 18

Révision 17 (Patrice Nadeau, 2024-01-27 15:46) → Révision 18/38 (Patrice Nadeau, 2024-01-27 15:47)

# Objets 

 ## Règles 

 1. Comportent au maximum **31** caractères : 
     1. Lettres minuscules 
     1. Nombres 
     1. Trait de soulignement 
 1. Si plusieurs mots sont utilisés, ils sont séparées par des traits de soulignement 
 1. Les commentaires Doxygen suivants siuivant sont ajoutés ajoutes 
     * `@brief` : Description obligatoire 
     * `@sa` : Lien vers une autre item (see also), facultatif 
     * `@todo` : Notes sur les tachés à faire, facultatif 
     * `@bug` : Notes sur les bogues présents, facultatif 
 1. Le si la visibilité n'est que locale, le modificateur `static` pour les objets ayant une visibilité locale doit être utilisé 
 1. Les objets ne devant plus être utilisés, DOIVENT générer un message lors de la compilation (`-Wall`) si un appel est effectué. 
     1. Les attributs`deprecated` ou `unavailable` DOIVENT être ajoutés à la déclaration. 
     1. Les commentaires Doxygen suivants doivent être ajoutés :  
         1. `@deprecated` : 
         1. `@since` : 

 ## Exemple 
 ``` c 
 /** 
  * @brief OldFunction 
  * @deprecated Utiliser NewFunction à la place 
  * @since Version x.x.xx 
  */ 
 int OldFunction(void) __attribute__((deprecated)); 

 /** 
  * @brief OldFunction 
  * @deprecated Utiliser NewFunction à la place 
  * @since Version x.x.xx 
  */ 
 int OldFunction(void) __attribute__((unavailable)); 

 /** 
 * @brief MACRO1 
 * @deprecated Utiliser NEWMACRO à la place 
 * @since Version x.x.xx 
 */ 
 #define MACRO1 43 
 #pragma GCC poison MACRO1 

 /** 
  * @brief Fonction locale 
  * @return Une valeur 
  */ 
 static int local_func(void) { 
     ... 
     return 0; 
 } 
 ``` 

 ## 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>