Identifiants » Historique » Révision 24
Révision 23 (Patrice Nadeau, 2024-01-28 10:43) → Révision 24/38 (Patrice Nadeau, 2024-01-28 10:45)
# Objets
## Règles
1. Écris en anglais avec 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 sont ajoutés
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. Le modificateur `static` pour les objets ayant une visibilité locale
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` : 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));
/**
* @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>