2. c = a & b cmp c, 0 goto if_equal label1; [...] label1:
on a des ordres de grandeurs d'exécution sans doute similaire mais on peut donc très bien imaginer des choses un peu différentes surtout dans l'évaluation de A && B.
On peut très bien imaginer :
cmp a, 0 goto_if_equal label1 a = 1 label1: cmp b, 0 goto_if_equal label2 b = 1 label2: c = a & b
-- DINH V. Hoa,
"emacs, c'est génial" -- Arsunique
Y aurait-il une quelleconque raison pour que
if (A) {
if (B) {
[...]
}
}
soit plus lent ou plus rapide que
if (A && B) {
[...]
}
ou A et B sont deux expressions booleennes non-constantes.
2.
c = a & b
cmp c, 0
goto if_equal label1;
[...]
label1:
on a des ordres de grandeurs d'exécution sans doute similaire mais on
peut donc très bien imaginer des choses un peu différentes surtout dans
l'évaluation de A && B.
On peut très bien imaginer :
cmp a, 0
goto_if_equal label1
a = 1
label1:
cmp b, 0
goto_if_equal label2
b = 1
label2:
c = a & b
2. c = a & b cmp c, 0 goto if_equal label1; [...] label1:
on a des ordres de grandeurs d'exécution sans doute similaire mais on peut donc très bien imaginer des choses un peu différentes surtout dans l'évaluation de A && B.
On peut très bien imaginer :
cmp a, 0 goto_if_equal label1 a = 1 label1: cmp b, 0 goto_if_equal label2 b = 1 label2: c = a & b
-- DINH V. Hoa,
"emacs, c'est génial" -- Arsunique
Antoine Leca
In news:, DINH Viêt Hoà va escriure:
if (A && B) { [...] }
ou A et B sont deux expressions booleennes non-constantes.
2. c = a & b cmp c, 0 goto if_equal label1; [...] label1:
Non. Tu n'as pas le droit d'évaluer b avant d'avoir déterminer que a est non-nul (OK, en fait c'est plutôt, tu n'as pas le droit de rendre visible les effets de bord de l'évaluation de b). Donc tu es obligé de créer un code qui ressemble plus à ton autre schéma (éval a, test si nul, éval b etc.)
Antoine
In news:etPan.43a3bda1.72e436ee.61a2@utopia, DINH Viêt Hoà va escriure:
if (A && B) {
[...]
}
ou A et B sont deux expressions booleennes non-constantes.
2.
c = a & b
cmp c, 0
goto if_equal label1;
[...]
label1:
Non. Tu n'as pas le droit d'évaluer b avant d'avoir déterminer que a est
non-nul (OK, en fait c'est plutôt, tu n'as pas le droit de rendre visible
les effets de bord de l'évaluation de b).
Donc tu es obligé de créer un code qui ressemble plus à ton autre schéma
(éval a, test si nul, éval b etc.)
ou A et B sont deux expressions booleennes non-constantes.
2. c = a & b cmp c, 0 goto if_equal label1; [...] label1:
Non. Tu n'as pas le droit d'évaluer b avant d'avoir déterminer que a est non-nul (OK, en fait c'est plutôt, tu n'as pas le droit de rendre visible les effets de bord de l'évaluation de b). Donc tu es obligé de créer un code qui ressemble plus à ton autre schéma (éval a, test si nul, éval b etc.)