Structure d'un programme C
Une expression est une suite de composants élémentaires syntaxiquement correcte, par exemple
x = 0
ou bien
(i >= 0) && (i < 10) && (p[i] != 0)
Une instruction est une expression suivie d'un point-virgule. Le point-virgule signifie en quelque sorte ``évaluer
cette expression''. Plusieurs instructions peuvent être rassemblées par des accolades { et } pour former une
instruction composée ou bloc qui est syntaxiquement équivalent à une instruction. Par exemple,
x = 0
ou bien
(i >= 0) && (i < 10) && (p[i] != 0)
Une instruction est une expression suivie d'un point-virgule. Le point-virgule signifie en quelque sorte ``évaluer
cette expression''. Plusieurs instructions peuvent être rassemblées par des accolades { et } pour former une
instruction composée ou bloc qui est syntaxiquement équivalent à une instruction. Par exemple,
if (x != 0)
{
z = y / x;
t = y % x;
}
Une instruction composée d'un spécificateur de type et d'une liste d'identificateurs séparés par une virgule est une
déclaration. Par exemple,
int a;
int b = 2, c;
double x = 2.38e4;
char message[80];
{
z = y / x;
t = y % x;
}
Une instruction composée d'un spécificateur de type et d'une liste d'identificateurs séparés par une virgule est une
déclaration. Par exemple,
int a;
int b = 2, c;
double x = 2.38e4;
char message[80];
ATTENTION : En C, toute variable doit faire l'objet d'une déclaration avant d'être utilisée.
Un programme C se présente de la façon suivante :
[directives au préprocesseur]
[déclarations de variables externes]
[fonctions secondaires]
main()
{ déclarations de variables internes,
instructions
}
La fonction principale main peut avoir des paramètres formels. On supposera dans un premier temps que la
fonction main n'a pas de valeur de retour. Ceci est toléré par le compilateur mais produit un message
d'avertissement quand on utilise l'option -Wall de gcc.
Les fonctions secondaires peuvent être placées indifféremment avant ou après la fonction principale. Une
fonction secondaire peut se décrire de la manière suivante :
type ma_fonction ( arguments )
{déclarations de variables internes
instructions
}
Cette fonction retournera un objet dont le type sera type (à l'aide d'une instruction comme return objet;). Les
arguments de la fonction obéissent à une syntaxe voisine de celle des déclarations : on met en argument de la
fonction une suite d'expressions type objet séparées par des virgules. Par exemple, la fonction secondaire
suivante calcule le produit de deux entiers :
int produit(int a, int b)
{
int resultat;
resultat = a * b;
return(resultat);
}
[directives au préprocesseur]
[déclarations de variables externes]
[fonctions secondaires]
main()
{ déclarations de variables internes,
instructions
}
La fonction principale main peut avoir des paramètres formels. On supposera dans un premier temps que la
fonction main n'a pas de valeur de retour. Ceci est toléré par le compilateur mais produit un message
d'avertissement quand on utilise l'option -Wall de gcc.
Les fonctions secondaires peuvent être placées indifféremment avant ou après la fonction principale. Une
fonction secondaire peut se décrire de la manière suivante :
type ma_fonction ( arguments )
{déclarations de variables internes
instructions
}
Cette fonction retournera un objet dont le type sera type (à l'aide d'une instruction comme return objet;). Les
arguments de la fonction obéissent à une syntaxe voisine de celle des déclarations : on met en argument de la
fonction une suite d'expressions type objet séparées par des virgules. Par exemple, la fonction secondaire
suivante calcule le produit de deux entiers :
int produit(int a, int b)
{
int resultat;
resultat = a * b;
return(resultat);
}