commit ca972025a3aec6dd1eacc7e9646e56496b6b77dc
parent 04884f23a53babb598b4b874e45d780d7f29d951
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Tue, 30 Jun 2026 19:33:41 +0200
Ajoute la section sur le nommage
Diffstat:
| M | doc/fr/star-c.7 | | | 128 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- |
1 file changed, 127 insertions(+), 1 deletion(-)
diff --git a/doc/fr/star-c.7 b/doc/fr/star-c.7
@@ -15,7 +15,7 @@
.\" Vous devez avoir reçu une copie de la GNU General Public License en
.\" même temps que Star-Style ; si ce n'est pas le cas, consultez
.\" <http://www.gnu.org/licenses>.
-.Dd June 26, 2026
+.Dd June 30, 2026
.Dt STAR-C 7
.Os
.\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
@@ -815,6 +815,132 @@ switch (c) {
.Ed
.\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.Sh LE NOMMAGE
+.\""""""""""""""""""""""""""""""""""
+.Ss Les variables
+Nommer les variables en minuscules.
+Utiliser le tiret bas
+.Ql _
+au titre de séparateur entre les termes utilisés dans le nom des
+variables :
+.Bd -literal -offset Ds
+foo_bar
+.Ed
+.Pp
+Expliciter l'objet d'une variable dans son nom avec d'autant plus de
+précision que sa portée est grande.
+Une variable locale à un bloc de quelques lignes pourra se contenter
+d'un nom abrégé tel que
+.Va tmp
+pour un résultat temporaire, voire n'être qu'un seul caractère
+pour un indice
+.Va i
+ou un nombre d'éléments
+.Va n Ns
+ ; leur contexte d'utilisation venant préciser ce que leur nom résume.
+Ce nom abrégé vient non seulement alléger l'écriture mais aussi en
+renforcer l'expressivité.
+Par exemple
+.Va tableau Ns Bq Va i
+reste plus clair que
+.Va tableau Ns Bq Va indice .
+.Pp
+Les variables globales sont au contraire à nommer de sorte à décrire ce
+qu'elles représentent, indépendemment de tout contexte d'utilisation,
+par construction distant de leur déclaration.
+Un compteur d'allocations dynamiques global à un programme aura donc
+pour nom
+.Va compteur_allocations
+plutôt que
+.Va cpt_allocs .
+.\""""""""""""""""""""""""""""""""""
+.Ss Les fonctions
+Nommer les fonctions avec des caractères alpha numérique en miniscules,
+et séparer les termes qui composent leur nom par un tiret bas
+.Pq caractère Ql _ .
+.Pp
+Donner à une fonction une nom d'autant plus explicite que sa portée est
+importante.
+Une fonction utilitaire pourra se contenter d'un nom abrégé, tel que
+.Fn cmp
+pour une fonction de comparaison utilisée comme argument d'un appel à
+.Xr qsort 3
+au sein d'un fichier C.
+.Pp
+Là où une fonction partagée entre plusieurs unitées de compilation aura
+un nom plus expressif, tel que
+.Fn compare_bar ,
+pour notamment expliciter le type
+.Vt struct bar
+des variables comparées.
+Jusqu'à préfixer le nom de la fonction par le nom de la bibliothèque
+quand elle est une fonction d'interface de ladite bibliothèque.
+Pour la bibliothèque
+.Ql Foo ,
+une fonction d'interface sera alors nommée
+.Fn foo_compare_bar .
+.\""""""""""""""""""""""""""""""""""
+.Ss Les déclarations de types
+Utiliser des caractères alphanumériques en minuscules pour nommer les
+structures, unions et énumérations.
+Utiliser le tiret bas
+.Ql _
+pour séparer les différents termes qui composent le nom.
+.Bd -literal -offset Ds
+struct foo {
+ int bar;
+ int baz
+};
+
+union foo_bar {
+ double qux;
+ int xyzzy;
+};
+.Ed
+.Pp
+Utiliser la même convention pour nommer les déclarations typedef.
+À l'exception du suffixe
+.Ql _T
+ajouté au nom de l'identificateur du type, en écho au suffixe
+.Ql _t
+souvent utilisé pour les déclarations typedef mais réservé par le
+standard POSIX.
+.Bd -literal -offset Ds
+typedef int foo_T;
+typedef char foo_bar_T[256];
+.Ed
+.Pp
+Ne pas utiliser de déclaration typedef sur les structures, unions et
+énumérations de sorte à permettre leur déclaration anticipée.
+.\""""""""""""""""""""""""""""""""""
+.Ss Constantes et macros
+Utiliser des majuscules pour nommer les constantes symboliques, qu'elles
+soient des macros ou des constantes énumérées.
+Séparer par un tiret bas
+.Ql _
+les termes qui composent le nom des constantes.
+.Bd -literal -offset Ds
+#define FOO_BAR 42
+
+enum foo {
+ BAR,
+ BAZ,
+ QUX,
+};
+.Ed
+.Pp
+Pour les arguments de macros, utiliser la convention typographique dite
+.Dq camel case
+en séparant les termes qui composent le nom de l'argument par une
+variation de la casse typographique.
+Chaque terme débute par une majuscule, suivi de chiffres ou de
+caractères alphanumériques en minuscule :
+.Bd -literal -offset Ds
+#define FOO(Bar, Qux) ((Bar) + (Bux))
+.Ed
+.Pp
+Ainsi, les arguments de macros sont différenciés des constantes
+symboliques et des variables.
+.\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.Sh LES FONCTIONS
.Sh LES VARIABLES
.Sh LES CONSTANTES SYMBOLIQUES