• Aucun résultat trouvé

Compilez-le avec les deux options précisées ci-dessus

N/A
N/A
Protected

Academic year: 2022

Partager "Compilez-le avec les deux options précisées ci-dessus"

Copied!
1
0
0

Texte intégral

(1)

Université de Nice-Sophia Antipolis avril 2022

Polytech/Xidian Durée: 1h30

CPP

Travaux Pratiques – Séance no8

Le préprocesseur s’applique dans une phase qui précède celle de la compilation proprement dite, passe sur tout le texte source du programme et traite toutes les directives qui lui sont destinées. Ces directives sont introduites par un dièse (#). Nous avons déjà vu les directives

#define, pour définir une constante, et#include, pour inclure le contenu d’un fichier.

Pour mettre en évidence le fonctionnement réel, nous allons jouer avec les options-Pet --save-tempsdegcc.

1) Reprenez un fichier de la séance précédente qui contient un #define et un #include. Compilez-le avec les deux options précisées ci-dessus. Décrivez les fichiers produits.

2) À quoi sert l’option-P? Quelle information enlève cette option ?

3) Décrivez le comportement exact du#define et du#include. Quelles informations sont perdues après le passage du préprocesseur ?

4) Écrivez, compilez, exécutez et expliquez le comportement du programme suivantprog.c:

#i n c l u d e < stdlib .h >

#i n c l u d e < stdio .h >

i n t main (vo i d) {

printf ("%s %d\n", __FILE__ , MAX );

r e t u r n EXIT_SUCCESS ; }

gcc -DMAX=300 -o prog prog.c && ./prog

5) Que se passe-t-il siMAXest aussi défini dans le programme ? Vérifiez.

6) Écrivez un programme qui affiche sur la sortie standard les valeurs des macros prédéfinies __DATE__,__TIME__,__FILE__,__TIMESTAMP__,__LINE__, et__func__.

7) Écrivez la macro MAX2(x,y) qui donne le maximum dex ety, puis écrivez lafonction max2(int x,inty)qui donne le maximum dexety.

8) Écrivez lamacroMAX3(x,y,z)qui donne le maximum dex yetz, puis écrivez lafonction max3(int x,inty,int z)qui donne le maximum dex,y, etz.

9) Écrivez un programme qui teste vos macros et fonctions. Testez le code suivant avecx=3,y=2 etz=1, et expliquez les résultats :

printf (" max3 (%d ,%d ,% d )=% d\n", x , y , z , max3 (x++ ,y ,z ));

printf (" MAX3 (%d ,%d ,% d )=% d\n", x , y , z , MAX3 (x++ ,y ,z ));

10) Écrivez un programme qui afficheC ansisi le compilateur est ansi, qui afficheC ansi/ISO C99 s’il est iso c99, etC non standarddans les autres cas. Vous devrez utiliser les directives de pro-

1

grammation conditionnelle et les macros prédéfinies__STRICT_ANSI__et__STDC__. Vous compi- lerez votre programme successivement avec les options de compilation-ansi -pedantic. 11) Écrivez un programme qui déclare un tableautabdeSIZEréeldoublesi la constanteSIZE est supérieure ou égale à 1024. Cette constante sera définie dans le fichier d’en-têteparam.h. D’autre part, si la constanteDEBUGest définie, votre programme affichera sur la sortie standard la valeur deSIZE.

2

Références

Documents relatifs

Soit N la variable aléatoire réelle donnant le nombre de jours d’incubation de la maladie, pour une personne prise au hasard.. On admet que N suit une loi log-normale de moyenne 5

Le tableau ci-dessous (source : INSEE) donne les indices des prix à la tonne de l’orge de mouture, destinée à la production de farine, et de l’orge de brasserie, destinée à

On s’intéresse maintenant à ce qui se passe sur un mois, soit 24 jours de pêche. On admet que la probabilité qu’il attrape un gros poisson un jour est 1 6 , et ce indépendamment

Dans cette classe, 34% des élèves suivent l’option « Droit commercial », 45% suivent l’option « Droit Public », le reste ayant choisi l’option « Mathématiques ».. On

(la Bourse) sont énumérées dans les tableaux ci-joints. Les limites de position pour les options sur actions et sur unités de fiducie et pour les options sur parts de fonds

This powerful gearmotor is available in six different gear ratios and features an integrated quadrature encoder with 64 counts per revolution (CPR) of the motor shaft..

Information is written on non-adiacent redundant tracks in the Phase Recording Systematdensitiesof350, 3-bitcharactersper inch and may be trans- ferredata rate

It gives the owner the right, but not the obligation, to take a short position in the underlying entity at the striking price until expiration of the option.. Let’s say Intel is