Déclarations possibles

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Syntaxe de déclaration - Index

Les objets qu'il est possible de déclarer sont les suivants :

  • Variables
  • Fonctions
  • Classes et membres de classe (C++)
  • Types
  • Noms de structure, d'union et d'énumération
  • Membres de structure
  • Membres d'union
  • Tableaux d'autres types
  • Constantes d'énumération
  • Etiquettes d'instruction
  • Macros de préprocesseur

La syntaxe complète des déclarations est présentée dans les tableaux ci-après. La nature récursive de cette syntaxe autorise des déclarateurs complexes. Il est conseillé d'utiliser typedefs pour assurer une meilleure lisibilité.

Dans la syntaxe des déclarations en Appmethod C++, vous remarquerez qu'il existe certaines restrictions quant au nombre et à l'ordre des modificateurs et des qualificateurs. Par ailleurs, les modificateurs cités sont le seul ajout à la syntaxe du déclarateur non conforme à la norme ANSI du C ou de C++. Pour plus d'informations sur ces modificateurs, voir les rubriques Modificateurs de variables et Modificateurs de fonctions.

Syntaxe des déclarations dans Appmethod C++

déclaration:
    <spécificateurs-decl> <liste-déclarateurs>;
    déclaration-asm
    définition-fonction
    spécification-liaisons
 déclaration-asm: 
   __asm  <(> littéral-chaîne < )> < ; ou nouvelle ligne >
spécificateur-decl:
    spécificateur-classe-stockage
    spécificateur-type
    spécificateur-fonction
    friend (spécifique au C++)
    typedef
spécificateurs-decl:  
    <spécificateurs-decl> spécificateur-decl
spécificateur-classe-stockage:    
    auto
    register
    static
    extern
spécificateur-fonction: (spécifique au C++)     
    inline
    virtual
nom-type-simple:    
    nom-classe
    typedef-nom
    boolean
    char
    short
    int
    __int8
    __int16
    __int32
    __int64
    long
    signed
    unsigned
    float
    double
    void     
liste-déclarateurs:
    déclarateur-init
    liste-déclarateurs , déclarateur-init
déclarateur-init:    
    déclarateur <initialisateur>
déclarateur:    
    dnom
    liste-modificateurs
    opérateur-pointeur déclarateur
    déclarateur ( liste-déclarations-paramètre )
    <liste-qualificateurs-cv >     (spécifique au C++)
    déclarateur [ <expression-constante> ]
    ( déclarateur )
liste-modificateurs:    
    modificateur
    liste-modificateurs modificateur
modificateur:    
    __cdecl
    __pascal
    __stdcall
    __fastcall
opérateur-pointeur:    
    * <liste-qualificateurs-cv>
    & <liste-qualificateurs-cv> (spécifique au C++)
    nom-classe :: * <liste-qualificateurs-cv> (spécifique au C++)
liste-qualificateurs-cv:
    qualificateur-cv <liste-qualificateurs-cv>     
qualificateur-cv:    
    const
    volatile
nomd:
    nom
    nom-classe (spécifique au C++)
    ~ nom-classe (spécifique au C++)
   nom-typedef
spécificateur-type-élaboré:
    clé-classe identificateur
    clé-classe nom-classe
    enum nom-enum
clé-classe: (spécifique au C++)
    class
    struct
    union
spécificateur-enum:
    enum <identificateur> { <liste-enum> }
liste-enum:
    énumérateur
    liste-énumérateur , énumérateur
énumérateur:
    identificateur
    identificateur = expression-constante
expression-constante:
    expression-conditionnelle
spécification-liaisons: (spécifique au C++)
    extern chaîne { <liste-déclaration> }
    extern chaîne-déclaration
spécificateur-type:
    nom-type-simple
    spécificateur-classe
    spécificateur-enum
    spécificateur-type-élaboré
    const
    volatile
liste-déclarations:
    déclaration
    liste-déclarations ; déclaration
nom-type:
    spécificateur-type <déclarateur-abstrait>
déclarateur-abstrait:
    opérateur-pointeur <déclarateur-abstrait>
    <déclarateur-abstrait> ( liste-déclarations-argument )
    <liste-qualificateurs-cv>
    <déclarateur-abstrait> [ <expression-constante> ]
    ( déclarateur-abstrait )
liste-déclarations-argument:
    <liste-déclarations-arg>
    liste-déclarations-arg , ...
    <liste-déclarations-arg> ... (spécifique au C++)
liste-déclarations-arg:
    déclaration-argument
    liste-déclarations-arg , déclaration-argument
déclaration-argument:
    spécificateurs-decl déclarateur
    spécificateurs-decl déclarateur = expression (spécifique au C++)
    spécificateurs-decl <déclarateur-abstrait>
    spécificateurs-decl <déclarateur-abstrait> = expression (spécifique au C++)
définition-fonction:
    <spécificateurs-decl >  déclarateur  <liste-déclarations > corps-fonction
corps-fonction:
    instruction-composée
initialisateur:
    = expression
    = { liste initialisateurs }
    ( liste-expressions ) (spécifique au C++)
liste initialisateurs:
    expression
    liste initialisateurs, expression
    { liste-initialisateurs <,> }


Voir aussi