![]()
Sémantique des déclarations ![]()
![]()
![]()
![]()
![]()
Suivant: Discussion sur les déclarations Début: Les déclarations Précédent: Syntaxe des déclarations
Sémantique des déclarations
La partie qui nécessite d'être explicitée est la partie de la grammaire concernant les déclarateur. La sémantique est la suivante :
- la seule règle de la grammaire qui dérive vers un terminal est la règle :
déclarateur-direct :
identificateur
ce qui fait qu'a l'intérieur de tout déclarateur se trouve un identificateur. Cet identificateur est le nom de l'objet déclaré par la déclaration. Exemple :char c; /* déclaration de la variable c de type char */- il y a 3 constructeurs de type :
- 1.
- * est un constructeur permettant de construire des types << pointeur vers ... >>. Exemple :
/* déclaration de p de type pointeur vers short int */ short int *p;- 2.
- ( ) est un constructeur permettant permettant de construire des types << fonction retournant ... >>.
Exemple :
/* déclaration de sin de type fonction retournant un double */ double sin();- 3.
- [ expression-constanteoption ] est un constructeur permettant de construire des types << tableau de ... >>.
Exemple :
/* déclaration de t de type tableau de 32 int */ int t[32];- les constructeurs de type peuvent se composer et sont affectés de priorités. Les constructeurs ( ) et [ ] ont la même priorité, et celle-ci est supérieure à la priorité du constructeur *.
char *t[10]; /* tableau de 10 pointeurs vers des char */ int *f(); /* fonction retournant un pointeur vers un int */ double t[10][10]; /* tableau de 10 tableaux de 10 double */- tout comme avec des expressions, la règle :
déclarateur-direct :
( déclarateur )
permet de parenthéser des déclarateur de manière à en changer la sémantique :char *t[10]; /* tableau de 10 pointeurs vers un char */ char (*t)[10]; /* pointeur vers un tableau de 10 char */
30/9/1997