Déclarations possibles
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 C++Builder, 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 C++Builder
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 <,> }