Developpez.com - C
X

Choisissez d'abord la catégorieensuite la rubrique :

next up previous contents index
Next: Sémantique des déclarations Up: Les déclarations Previous: Fonction à nombre variable

Sous-sections

Syntaxe des déclarations

La grammaire des déclarations est la suivante :

déclaration :
$\Rightarrow$ spécificateurs-de-déclaration liste-de-déclarateurs-initoption ;

spécificateurs-de-déclaration :
$\Rightarrow$ spécificateur-de-classe-mémoire spécificateurs-de-déclarationoption
$\Rightarrow$ spécificateur-de-type spécificateurs-de-déclarationoption
$\Rightarrow$ qualificatif-de-type spécificateurs-de-déclarationoption

liste-de-déclarateurs-init :
$\Rightarrow$ déclarateur-init
$\Rightarrow$ liste-de-déclarateurs-init , déclarateur-init

déclarateur-init :
$\Rightarrow$ déclarateur
$\Rightarrow$ déclarateur = initialisateur

spécificateur-de-classe-mémoire :
$\Rightarrow$ auto
$\Rightarrow$ extern
$\Rightarrow$ static
$\Rightarrow$ register
$\Rightarrow$ typedef

spécificateur-de-type :
$\Rightarrow$ void
$\Rightarrow$ char
$\Rightarrow$ short
$\Rightarrow$ int
$\Rightarrow$ long
$\Rightarrow$ float
$\Rightarrow$ double
$\Rightarrow$ signed
$\Rightarrow$ unsigned
$\Rightarrow$ spécificateur-de-struct-ou-union
$\Rightarrow$ spécificateur-d-énumération
$\Rightarrow$ nom-de-typedef

spécificateur-de-struct-ou-union :
$\Rightarrow$ struct-ou-union identificateuroption { liste-de-déclarations-de-struct }
$\Rightarrow$ struct-ou-union identificateur

struct-ou-union :
$\Rightarrow$ struct
$\Rightarrow$ union

liste-de-déclarations-de-struct :
$\Rightarrow$ déclaration-de-struct
$\Rightarrow$ liste-de-déclarations-de-struct déclaration-de-struct

déclaration-de-struct :
$\Rightarrow$ liste-de-spécificateurs-et-qualificatifs liste-de-déclarateurs-de-struct ;

liste-de-spécificateurs-et-qualificatifs :
$\Rightarrow$ spécificateur-de-type liste-de-spécificateurs-et-qualificatifsoption
$\Rightarrow$ qualificatif-de-type liste-de-spécificateurs-et-qualificatifsoption

liste-de-déclarateurs-de-struct :
$\Rightarrow$ déclarateur-de-struct
$\Rightarrow$ liste-de-déclarateurs-de-struct , déclarateur-de-struct

déclarateur-de-struct :
$\Rightarrow$ déclarateur
$\Rightarrow$ déclarateuroption : expression-constante

spécificateur-d-énumération :
$\Rightarrow$ enum identificateuroption { liste-d-énumérateurs }
$\Rightarrow$ enum identificateur

liste-d-énumérateurs :
$\Rightarrow$ énumérateur
$\Rightarrow$ liste-d-énumérateurs , énumérateur

énumérateur :
$\Rightarrow$ identificateur
$\Rightarrow$ identificateur = expression constante

qualificatif-de-type :
$\Rightarrow$ const
$\Rightarrow$ volatile

déclarateur :
$\Rightarrow$ pointeuroption déclarateur-direct

déclarateur-direct :
$\Rightarrow$ identificateur
$\Rightarrow$ ( déclarateur )
$\Rightarrow$ déclarateur-direct [ expression-constanteoption ]
$\Rightarrow$ déclarateur-direct ( liste-de-types-de-paramètres )
$\Rightarrow$ déclarateur-direct ( liste-d-identificateursoption )

pointeur :
$\Rightarrow$ * liste-de-qualificatifs-de-typesoption
$\Rightarrow$ * liste-de-qualificatifs-de-typesoption pointeur

liste-de-qualificatifs-de-types :
$\Rightarrow$ qualificatif-de-type
$\Rightarrow$ liste-de-qualificatifs-de-types qualificatif-de-type

liste-de-types-de-paramètres :
$\Rightarrow$ liste-de-paramètres
$\Rightarrow$ liste-de-paramètres , ...

liste-de-paramètres :
$\Rightarrow$ déclaration-de-paramètre
$\Rightarrow$ liste-de-paramètres , déclaration-de-paramètre

déclaration-de-paramètre :
$\Rightarrow$ spécificateurs-de-déclaration déclarateur
$\Rightarrow$ spécificateurs-de-déclaration déclarateur-abstraitoption

liste-d'identificateurs :
$\Rightarrow$ identificateur
$\Rightarrow$ liste-d'identificateurs , identificateur

initialisateur :
$\Rightarrow$ expression-d'affectation
$\Rightarrow$ { liste-d-initialisateurs }
$\Rightarrow$ { liste-d-initialisateurs , }

liste-d'initialisateurs :
$\Rightarrow$ initialisateur
$\Rightarrow$ liste-d'initialisateurs , initialisateur

Exemples

Dans la déclaration :
int i,j = 2;
int est un spécificateur-de-type et i,j = 2 est une liste-de-déclarateur-init composée de deux déclarateur-init : i et j = 2. i est un déclarateur-init sans la partie initialisateur, donc réduit à un déclarateur lui-même réduit à un identificateur. j = 2 est un déclarateur-init comportant un initialisateur (= 2) et un déclarateur réduit à un identificateur (j). Dans la déclaration :
int t[10];
t[10] est un déclarateur formé d'un déclarateur (t), suivi de [ suivi de l'expression constante 10, suivi de ].


next up previous contents index
Next: Sémantique des déclarations Up: Les déclarations Previous: Fonction à nombre variable
Bernard Cassagne
1998-12-09
Contacter le responsable de la rubrique C