commit 544dfba84271e0aa142b25bb9b908996ba266db1
parent e7149353789d7028f08bd1de73ff961da13c55a8
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 15 Jul 2026 12:31:20 +0200
Ajoute la section sur les structures
Diffstat:
1 file changed, 47 insertions(+), 0 deletions(-)
diff --git a/doc/fr/star-c.7 b/doc/fr/star-c.7
@@ -1272,6 +1272,53 @@ static const struct qux QUX_DEFAULT = QUX_DEFAULT__;
.Ed
.\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.Sh LES STRUCTURES
+Définir les structures en en-tête de fichier
+.Pq section Sx LA STRUCTURE D'UN FICHIER SOURCE .
+.Pp
+Lister les variables membres d'une structure suivant la même convention
+que pour la définition des variables d'un bloc
+.Pq section Sx LES VARIABLES Ns
+ :
+Les regrouper d'abord par sémantique, puis les trier par occupation
+mémoire décroissante, et enfin par ordre alphabétique.
+.Pp
+Ne définir qu'une variable membre par ligne.
+.Pp
+Pour une structure dont aucune fonction ne permet d'en initialiser les
+variables membres, définir une constante qui fixe leur valeur par défaut
+.Pq section Sx LES CONSTANTES .
+Suffixer cette constante par
+.Ql DEFAULT
+ou
+.Ql NULL
+fonction de si une variable structurée ainsi initialisée est une donnée
+valide ou non :
+.Bd -literal -offset Ds
+struct arg {
+ char* fichier; /* NULL <=> entrée standard */
+ int verbosite;
+};
+#define ARG_DEFAULT__ {NULL, 0}
+static const struct arg ARG_DEFAULT = ARG_DEFAULT__;
+
+struct chaine {
+ char* mem;
+ int longueur;
+ int capacite;
+};
+#define CHAINE_NULL__ {NULL,0,0}
+static const struct chaine CHAINE_NULL = CHAINE_NULL__;
+.Ed
+.Pp
+Éviter d'utiliser une déclaration typedef des structures afin
+d'autoriser leur déclaration anticipée.
+Et l'utilisation de pointeur vers une donnée structurée sans avoir en à
+connaitre la représentation mémoire
+.Pq structures opaques .
+Si un déclaration typedef est néanmoins souhaitée, nommer le type
+structuré en suivant la convention de nommage des déclarations typedef
+.Pq section Sx LE NOMMAGE .
+.\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.Sh LES MACROS
.Sh LES ALLOCATIONS DYNAMIQUES
.Sh LA GESTION DES ERREURS