/
compte-rendu.txt
29 lines (19 loc) · 1.09 KB
/
compte-rendu.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Exercice 1
Note : le static n'a pas d'effet.
à la restitution du contexte, le contenu des variables i et j n'est pas réinitialisé
setjump a l'effet d'un goto lorsqu'il est dans une même fonction.
La sauvegarde de contexte porte sur le contexte de la fonction, il ne sauvegarde pas l'état des variables à un instant t.
set jmp "sauvegarde le contexte de pile et d’environnement"
Dans la première version :
les boucles remettent j à 0
et donc la variable i subit les -- et les ++ : au final i=0
Dans la seconde version :
les boucles ne réinitialise pas j à 0
donc à la restituion de contexte, j=5 et la 2e boucle ne s'applique pas,
i ne subit que les -- d'où au final, i=-5
Exercice 2
à l'appel de longjmp, la fonction cpt() qui a appellé setjmp est terminée.
D'après la doc, "Le contexte de pile sera invalide si la fonction qui appelle setjmp() se termine."
longjump retourne dans cpt() et applique la boucle de ++ à i, cependant à la fin
de cette fonction, le retour ne se fait pas là où le premier appel à cpt() s'est fait, mais à la ligne suivant le longjmp().
Exercice 3