dans ce cas là, pas d'ambiguïté: x vaut 0. Mais quid du code suivant?
int x;
x = 1 != 2;
printf("%d\n",x);
Pour moi, impossible de connaître la valeur de x, je peux juste dire
qu'elle est non-nulle. gcc me renvoyant toujours 1, j'ai voulu savoir si
cette valeur était normalisée.
Je n'ai pas trouvé la réponse dans mon K&R. Dans ISO/IEC point 6.5.8.6,
on peut lire
"Each of the operators < (less than), > (greater than), <= (less than or
equal to), and >= (greater than or equal to) shall yield 1 if the
specified relation is true and 0 if it is false.90)
The result has type int"
J'aurais tendance a dire qu'il va de même pour == et != mais je n'ai
rien trouvé me le certifiant.
Si un exégète peut m'aider dans ma quête de vérité, cela m'aiderait
grandement dans ma compréhension de La Grande Question sur la Vie,
l'Univers et le Reste.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre Maurette
Bonjour à tous,
int x; x = 1 == 2; printf("%dn",x);
dans ce cas là, pas d'ambiguïté: x vaut 0. Mais quid du code suivant?
int x; x = 1 != 2; printf("%dn",x);
Pour moi, impossible de connaître la valeur de x, je peux juste dire qu'elle est non-nulle. gcc me renvoyant toujours 1, j'ai voulu savoir si cette valeur était normalisée.
Je n'ai pas trouvé la réponse dans mon K&R. Dans ISO/IEC point 6.5.8.6, on peut lire
"Each of the operators < (less than), > (greater than), <= (less than or equal to), and >= (greater than or equal to) shall yield 1 if the specified relation is true and 0 if it is false.90) The result has type int"
J'aurais tendance a dire qu'il va de même pour == et != mais je n'ai rien trouvé me le certifiant.
Si un exégète peut m'aider dans ma quête de vérité, cela m'aiderait grandement dans ma compréhension de La Grande Question sur la Vie, l'Univers et le Reste.
Dans ma copie de la norme (c99 draft) en §6.5.9.3
3 The == (equal to) and != (not equal to) operators are analogous to the relational operators except for their lower precedence. Each of the operators yields 1 if the specified relation is true and 0 if it is false. The result has type int. For any pair of operands, exactly one of the relations is true.
-- Pierre Maurette
Bonjour à tous,
int x;
x = 1 == 2;
printf("%dn",x);
dans ce cas là, pas d'ambiguïté: x vaut 0. Mais quid du code suivant?
int x;
x = 1 != 2;
printf("%dn",x);
Pour moi, impossible de connaître la valeur de x, je peux juste dire qu'elle
est non-nulle. gcc me renvoyant toujours 1, j'ai voulu savoir si cette valeur
était normalisée.
Je n'ai pas trouvé la réponse dans mon K&R. Dans ISO/IEC point 6.5.8.6, on
peut lire
"Each of the operators < (less than), > (greater than), <= (less than or
equal to), and >= (greater than or equal to) shall yield 1 if the specified
relation is true and 0 if it is false.90)
The result has type int"
J'aurais tendance a dire qu'il va de même pour == et != mais je n'ai rien
trouvé me le certifiant.
Si un exégète peut m'aider dans ma quête de vérité, cela m'aiderait
grandement dans ma compréhension de La Grande Question sur la Vie, l'Univers
et le Reste.
Dans ma copie de la norme (c99 draft) en §6.5.9.3
3
The == (equal to) and != (not equal to) operators are analogous to the
relational operators except for their lower precedence. Each of the
operators yields 1 if the specified relation is true and 0 if it is
false. The result has type int. For any pair of operands, exactly one
of the relations is true.
dans ce cas là, pas d'ambiguïté: x vaut 0. Mais quid du code suivant?
int x; x = 1 != 2; printf("%dn",x);
Pour moi, impossible de connaître la valeur de x, je peux juste dire qu'elle est non-nulle. gcc me renvoyant toujours 1, j'ai voulu savoir si cette valeur était normalisée.
Je n'ai pas trouvé la réponse dans mon K&R. Dans ISO/IEC point 6.5.8.6, on peut lire
"Each of the operators < (less than), > (greater than), <= (less than or equal to), and >= (greater than or equal to) shall yield 1 if the specified relation is true and 0 if it is false.90) The result has type int"
J'aurais tendance a dire qu'il va de même pour == et != mais je n'ai rien trouvé me le certifiant.
Si un exégète peut m'aider dans ma quête de vérité, cela m'aiderait grandement dans ma compréhension de La Grande Question sur la Vie, l'Univers et le Reste.
Dans ma copie de la norme (c99 draft) en §6.5.9.3
3 The == (equal to) and != (not equal to) operators are analogous to the relational operators except for their lower precedence. Each of the operators yields 1 if the specified relation is true and 0 if it is false. The result has type int. For any pair of operands, exactly one of the relations is true.