star-style

Writing conventions for co-authors
Log | Files | Refs | README | LICENSE

commit 5fccf10ac0e96e168ef19622eb1e6e13b7867075
parent ca972025a3aec6dd1eacc7e9646e56496b6b77dc
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Wed,  1 Jul 2026 11:45:32 +0200

Relecture

Diffstat:
Mdoc/fr/star-c.7 | 96+++++++++++++++++++++++++++++++++++++++++++------------------------------------
1 file changed, 52 insertions(+), 44 deletions(-)

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 30, 2026 +.Dd July 1, 2026 .Dt STAR-C 7 .Os .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -166,9 +166,9 @@ en référence à l'extension du fichier. Dans l'exemple qui précède, le garde-fou concerne donc le fichier .In foo.h . -La convention d'écriture est sinon celle utilisée pour n'importe quelle +La convention de nommage est sinon celle utilisée pour n'importe quelle macro -.Pq section Sx LES MACROS . +.Pq section Sx LE NOMMAGE . .\"""""""""""""""""""""""""""""""""" .It L'inclusion des fichiers d'en-tête requis par le fichier source ; @@ -183,16 +183,18 @@ La définition des macros .It La déclaration anticipée des types structurés : .Bd -literal -offset Ds -/* Type structuré externe au programme */ -struct logger; +/* Type structurés externes au programme */ +struct plugh; +struct quux; +struct xyzzy; -/* Type structuré défini ailleurs dans le programme */ +/* Types structurés définis ailleurs dans le programme */ +struct bar; struct foo; .Ed .\"""""""""""""""""""""""""""""""""" .It -La définition des constantes symboliques -de type +La définition des constantes symboliques de type .Vt enum .Pq section Sx LES CONSTANTES SYMBOLIQUES Ns  ; @@ -213,7 +215,7 @@ La déclaration des fonctions ; .It b. La définition des fonctions statiques ; .It c. -Pour les unités de compilations, la définition des fonctions. +Pour les unités de compilation, la définition des fonctions. .El .\"""""""""""""""""""""""""""""""""" .It @@ -263,8 +265,10 @@ Conclure chaque avis par l'adresse de contact de l'auteur(e), donnée entre parenthèses. .Pp Sauter une ligne après l'avis de copyright et ajouter la déclaration -autorisant la copie telle que donnée par la Foundation pour le logiciel +autorisant la copie telle que donnée par la Fondation pour le logiciel libre. +Utiliser l'avis de copyright en anglais qui, au contraire de sa +traduction française, revêt une signification juridique. .Pp L'en-tête type d'un fichier source du programme .Ql Foo @@ -401,7 +405,7 @@ si, respectivement, la ligne précède ou suit l'intitulé de la section : * Définition des fonctions utilitaires **********************************************************/ static void -process_chunk(uint32_t state[4], const char chunk[64]) +foo(uint32_t bar[4], const char baz[64]) { ... } @@ -433,9 +437,9 @@ Inclure les fichiers d'en-tête dans l'ordre qui suit : .It les en-têtes locaux au programme ; .It -les en-têtes des dépendances ; +les en-têtes des dépendances du programme ; .It -les en-têtes systèmes et de la bibliothèque C standard. +les en-têtes systèmes et ceux de la bibliothèque C standard. .El .Pp Les fichiers d'en-tête sont ainsi inclus dans l'ordre décroissant de @@ -518,10 +522,12 @@ du compilateur C .Sy EXPORT_SYM et .Sy IMPORT_SYM -des directives définies dans la bibliothèque RSys. +des directives définies dans la bibliothèque +.Ql RSys . Elles enrichissent le langage C d'une gestion explicite de la visibilité des symboles. .El +.Pp Utiliser cette macro à la déclaration des variables et constantes d'interfaces : .Bd -literal -offset Ds @@ -530,12 +536,12 @@ FOO_API const struct foo foo_plugh; FOO_API const struct foo foo_xyzzy; .Ed .Pp -Déclarer en plus le prototype des fonctions d'interface entre les -directives +Déclarer le prototype des fonctions d'interface entre les directives .Sy BEGIN_DECLS et .Sy END_DECLS , -elles aussi définies dans la bibliothèque RSys +elles aussi définies dans la bibliothèque +.Ql RSys .Pq en-tête In rsys/rsys.h . Ainsi, le fichier d'en-tête peut être inclus par un programe C++ : .Bd -literal -offset Ds @@ -559,8 +565,9 @@ Pour les fichiers d'en-tête internes au programme, utiliser la directive .Sy LOCAL_SYM , définie dans le fichier .In rsys/rsys.h -de la bibliothèque RSys, pour déclarer les variables globales et -prototypes de fonctions. +de la bibliothèque +.Ql RSys , +pour déclarer les variables globales et prototypes de fonctions. Ainsi leur symbole n'est pas exposé à l'extérieur du programme. .Bd -literal -offset Ds #include <rsys/rsys.h> @@ -584,16 +591,16 @@ de Utiliser .Sy LOCAL_SYM permet néanmoins de s'exonérer de cet a priori, tout en uniformisant -les déclaration des fonctions et variables où, pour chacune d'elles, la -visibilité du symbole associé est alors explicite. +les déclaration des fonctions et variables en explicitant pour chaque +déclaration la visibilité du symbole associé. .\"""""""""""""""""""""""""""""""""" .Ss Les symboles internes à une unité de compilation Utiliser le mot clé .Ql static -pour déclarer des variables constantes, et fonctions visibles uniquement -au sein d'une unité de compilation. +pour déclarer des variables, constantes, et fonctions visibles +uniquement au sein d'une unité de compilation. .Pp -C'est notamment le cas de constantes symboliques structurée : +C'est notamment le cas des constantes symboliques structurées : .Bd -literal -offset Ds struct foo { int bar; @@ -616,11 +623,12 @@ Ces fonctions peuvent en plus être déclarées avec la directive .Sy INLINE , définie dans l'en-tête .In rsys/rsys.h -de la bibliothèque RSys, +de la bibliothèque +.Ql RSys , pour suggérer au compilateur de substituer l'appel de la fonction par le -corps de celle-ci, de sorte à éviter le sur coût de l'appel. +corps de celle-ci, de sorte à éviter le surcoût de l'appel. Cette directive est équivalente au mot clé -.Sy inline +.Ql inline du C99, indisponible dans le dialecte C retenu .Pq section Sx LE LANGAGE C . .Bd -literal -offset Ds @@ -670,7 +678,7 @@ foo(void) .Ed .Pp Fermer un bloc sur une ligne à part sauf s'il est suivi d'une nouvelle -structure de contrôle associé à la précédente +structure de contrôle associée à la précédente .Po .Ql if else , .Ql do while @@ -681,7 +689,7 @@ utilisée pour fermer le bloc, en la séparant du caractère par un espace. .Pp Aligner la fermeture du bloc à l'indentation de sa directive, ou, dans -le cas de directives qui se suivent, de l'indentation de la première +le cas de directives qui se suivent, à l'indentation de la première directive à l'origine des blocs successifs : .Bd -literal -offset Ds if (foo) { @@ -764,11 +772,12 @@ même si l'ensemble des valeurs que pourraient prendre l'expression du .Ql switch est censé être couvert par les différents .Ql case . -C'est notamment le cas quand l'expression est une variables de type -.Vt enum . +C'est notamment le cas quand l'expression est une variable +d'énumération. Utiliser alors la directive .Sy FATAL , -définie par la bibliothèque RSys +définie par la bibliothèque +.Ql RSys .Pq en-tête In rsys/rsys.h , pour signifier un comportement inattendu. Et ainsi pouvoir diagnostiquer une erreur dans la valeur de l'expression @@ -790,7 +799,8 @@ Ajouter la directive .Sy FALLTHROUGH , définie dans le fichier d'en-tête .In rsys/rsys.h -de la bibliothèque RSys, +de la bibliothèque +.Ql RSys , en fin des instructions .Ql case qui s'enchaînent. @@ -845,7 +855,7 @@ 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, +qu'elles représentent, indépendamment de tout contexte d'utilisation, par construction distant de leur déclaration. Un compteur d'allocations dynamiques global à un programme aura donc pour nom @@ -854,7 +864,7 @@ plutôt que .Va cpt_allocs . .\"""""""""""""""""""""""""""""""""" .Ss Les fonctions -Nommer les fonctions avec des caractères alpha numérique en miniscules, +Nommer les fonctions avec des caractères alphanumérique en minuscules, et séparer les termes qui composent leur nom par un tiret bas .Pq caractère Ql _ . .Pp @@ -865,8 +875,7 @@ Une fonction utilitaire pourra se contenter d'un nom abrégé, tel que 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 +Là où une fonction partagée entre plusieurs unités de compilation aura un nom plus expressif, tel que .Fn compare_bar , pour notamment expliciter le type @@ -884,7 +893,7 @@ 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. +pour séparer les différents termes qui composent leur nom. .Bd -literal -offset Ds struct foo { int bar; @@ -902,7 +911,7 @@ Utiliser la même convention pour nommer les déclarations typedef. .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 +souvent utilisé pour ce type de déclaration mais réservé par le standard POSIX. .Bd -literal -offset Ds typedef int foo_T; @@ -922,9 +931,8 @@ les termes qui composent le nom des constantes. #define FOO_BAR 42 enum foo { - BAR, - BAZ, - QUX, + BAR_BAZ, + QUX }; .Ed .Pp @@ -932,8 +940,8 @@ 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 : +Chaque terme débute par une majuscule, suivi de caractères +alphanumériques en minuscule : .Bd -literal -offset Ds #define FOO(Bar, Qux) ((Bar) + (Bux)) .Ed