Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS C FAQs C TUTORIELS C LIVRES C COMPILATEURS C SOURCES GTK+
next up previous contents index
Next: Discussion sur les déclarations Up: Les déclarations Previous: 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 :
$\bullet$
la seule règle de la grammaire qui dérive vers un terminal est la règle :
déclarateur-direct :
$\Rightarrow$ 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   */

$\bullet$
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];

$\bullet$
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           */

$\bullet$
tout comme avec des expressions, la règle :
déclarateur-direct :
$\Rightarrow$ ( 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   */


next up previous contents index
Next: Discussion sur les déclarations Up: Les déclarations Previous: Syntaxe des déclarations
Bernard Cassagne
1998-12-09
Responsable bénévole de la rubrique C : Arnaud Feltz (buchs) - Contacter par EMail :
Vos questions techniques : forum d'entraide C - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.