Résumé des déclarations
declaration:
declaration-specifiers attribute-seq opt init-declarator-list opt**;**/* attribute-seq est spécifique de Microsoft */
declaration-specifiers:
storage-class-specifier declaration-specifiers opttype-specifier declaration-specifiers opt
type-qualifier declaration-specifiers opt
attribute-seq : /* attribute-seq est propre à Microsoft */
attribute attribute-seq optattribute : un des éléments suivants : /* Propre à Microsoft */
init-declarator-list :
init-declaratorinit-declarator-list , init-declarator
init-declarator :
declaratordeclarator = initializer /* pour l'initialisation scalaire */
storage-class-specifier:
autoregister
static
extern
typedef
__declspec ( extended-decl-modifier-seq ) /* Propre à Microsoft */
type-specifier:
voidchar
short
int
__int8 /* Propre à Microsoft */
__int16 /* Propre à Microsoft */
__int32 /* Propre à Microsoft */
__int64 /* Propre à Microsoft */
long
float
double
signed
non signé
struct-or-union-specifier
enum-specifier
typedef-name
type-qualifier :
constvolatile
declarator:
pointer opt direct-declaratordirect-declarator :
identifier( declarator )
direct-declarator [ constant-expression opt ]
direct-declarator ( parameter-type-list ) /* déclarateur de nouveau style */
direct-declarator ( identifier-list option )/ /* déclarateur de style obsolète */
pointer:
*****type-qualifier-list opt*****type-qualifier-list opt pointer
parameter-type-list : /* La liste de paramètres */
parameter-listparameter-list**, ...**
parameter-list :
parameter-declarationparameter-list , parameter-declaration
type-qualifier-list :
type-qualifiertype-qualifier-list type-qualifier
enum-specifier :
enum identifier opt { enumerator-list }enum identifier
enumerator-list :
enumeratorenumerator-list , enumerator
enumerator:
enumeration-constantenumeration-constant = constant-expression
enumeration-constant :
identifierstruct-or-union-specifier :
struct-or-union identifier opt { struct-declaration-list } struct-or-union identifierstruct-or-union :
structunion
struct-declaration-list :
struct-declarationstruct-declaration-list struct-declaration
struct-declaration :
specifier-qualifier-list struct-declarator-list ;specifier-qualifier-list :
type-specifier specifier-qualifier-list opttype-qualifier specifier-qualifier-list opt
struct-declarator-list :
struct-declarator struct-declarator-list , struct-declaratorstruct-declarator :
declaratortype-specifier declarator opt : constant-expression
parameter-declaration :
declaration-specifiers declarator /* Déclarateur nommé */declaration-specifiers abstract-declarator opt /* Déclarateur anonyme */
identifier-list : /* Pour le déclarateur de style ancien * /
identifieridentifier-list , identifier
abstract-declarator : /* Utilisé avec les déclarateurs anonymes */
pointerpointer opt direct-abstract-declarator
direct-abstract-declarator :
( abstract-declarator )direct-abstract-declarator opt [ constant-expression opt ]
direct-abstract-declarator opt ( parameter-type-list opt )
initializer :
assignment-expression{ initializer-list } /* Pour l'initialisation d'agrégats */
{ initializer-list , }
initializer-list :
initializerinitializer-list , initializer
type-name :
specifier-qualifier-list abstract-declarator opttypedef-name :
identifierextended-decl-modifier-seq :/* Propre à Microsoft */
extended-decl-modifier optextended-decl-modifier-seq extended-decl-modifier
extended-decl-modifier : /* Propre à Microsoft */
threadnaked
dllimport
dllexport