Next: Sémantique des déclarations
 Up: Les déclarations
 Previous: Fonction à nombre variable
Sous-sections
La grammaire des déclarations est la suivante :
déclaration :
    
spécificateurs-de-déclaration
       liste-de-déclarateurs-initoption
       ;
spécificateurs-de-déclaration :
    
spécificateur-de-classe-mémoire
       spécificateurs-de-déclarationoption
    
       spécificateur-de-type
       spécificateurs-de-déclarationoption
    
qualificatif-de-type
       spécificateurs-de-déclarationoption
liste-de-déclarateurs-init :
    
déclarateur-init
    
liste-de-déclarateurs-init
       ,
       déclarateur-init
déclarateur-init :
    
déclarateur
    
déclarateur
       =
       initialisateur
spécificateur-de-classe-mémoire :
    
auto
    
extern
    
static
    
register
    
typedef
spécificateur-de-type :
    
void
    
char
    
short
    
int
    
long
    
float
    
double
    
signed
    
unsigned
    
spécificateur-de-struct-ou-union
    
spécificateur-d-énumération
    
nom-de-typedef
spécificateur-de-struct-ou-union :
    
struct-ou-union
       identificateuroption
       {
       liste-de-déclarations-de-struct
       }
    
struct-ou-union
       identificateur
struct-ou-union :
    
struct
    
union
liste-de-déclarations-de-struct :
    
déclaration-de-struct
    
liste-de-déclarations-de-struct
       déclaration-de-struct
déclaration-de-struct :
    
liste-de-spécificateurs-et-qualificatifs
       liste-de-déclarateurs-de-struct
       ;
liste-de-spécificateurs-et-qualificatifs :
    
spécificateur-de-type
       liste-de-spécificateurs-et-qualificatifsoption
    
qualificatif-de-type
       liste-de-spécificateurs-et-qualificatifsoption
liste-de-déclarateurs-de-struct :
    
déclarateur-de-struct
    
liste-de-déclarateurs-de-struct
       ,
       déclarateur-de-struct
déclarateur-de-struct :
    
déclarateur
    
déclarateuroption
       :
       expression-constante
spécificateur-d-énumération :
    
enum
       identificateuroption
       {
       liste-d-énumérateurs 
       }
    
enum
       identificateur
liste-d-énumérateurs :
    
énumérateur
    
liste-d-énumérateurs
       ,
       énumérateur
énumérateur :
    
identificateur
    
identificateur
       =
       expression constante
qualificatif-de-type :
    
const
    
volatile
déclarateur :
    
pointeuroption
       déclarateur-direct
déclarateur-direct :
    
identificateur
    
       (
       déclarateur
       )
    
déclarateur-direct
       [
       expression-constanteoption
       ]
    
       déclarateur-direct
       (
       liste-de-types-de-paramètres
       )
    
       déclarateur-direct
       (
       liste-d-identificateursoption
       )
pointeur :
    
*
       liste-de-qualificatifs-de-typesoption
    
*
       liste-de-qualificatifs-de-typesoption
       pointeur
liste-de-qualificatifs-de-types :
    
qualificatif-de-type
    
liste-de-qualificatifs-de-types
       qualificatif-de-type
liste-de-types-de-paramètres :
    
liste-de-paramètres
    
liste-de-paramètres
       ,
       ...
liste-de-paramètres :
    
déclaration-de-paramètre
    
liste-de-paramètres
       ,
       déclaration-de-paramètre
déclaration-de-paramètre :
    
spécificateurs-de-déclaration
       déclarateur
    
spécificateurs-de-déclaration
       déclarateur-abstraitoption
liste-d'identificateurs :
    
identificateur
    
liste-d'identificateurs
       ,
       identificateur
initialisateur :
    
expression-d'affectation
    
{
       liste-d-initialisateurs
       }
    
{
       liste-d-initialisateurs
       ,
       }
liste-d'initialisateurs :
    
initialisateur
    
liste-d'initialisateurs
       ,
       initialisateur
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: Sémantique des déclarations
 Up: Les déclarations
 Previous: Fonction à nombre variable
Bernard Cassagne
1998-12-09