Bonjour,
Deux choses me gênent dans la description de la fonction strcmp dans la
norme (C90 tout comme C99) :
1er point :
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the difference
between the values of the first pair of characters (both interpreted as
unsigned char) that differ in the objects being compared.
-------------------------------->8-----------------------------------
Pourquoi employer l'expression "is determined" qui est assez vague
(pour moi, ici ça veut dire "est déterminé") ? Pourquoi ne pas dire
que les signes sont identiques (donc "coincides with" ou "matches" ou
"is identical to", etc) ?
2ème point :
--------------------------------8<-----------------------------------
7.21.4.2 p3 The strcmp function returns an integer greater than, equal
to, or less than zero, accordingly as the string pointed to by s1 is
greater than, equal to, or less than the string pointed to by s2.
-------------------------------->8-----------------------------------
Où dans la norme la notion de "chaîne plus grande qu'une autre" est-elle
définie ?
Merci
Bonjour,
Deux choses me gênent dans la description de la fonction strcmp dans la
norme (C90 tout comme C99) :
1er point :
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the difference
between the values of the first pair of characters (both interpreted as
unsigned char) that differ in the objects being compared.
-------------------------------->8-----------------------------------
Pourquoi employer l'expression "is determined" qui est assez vague
(pour moi, ici ça veut dire "est déterminé") ? Pourquoi ne pas dire
que les signes sont identiques (donc "coincides with" ou "matches" ou
"is identical to", etc) ?
2ème point :
--------------------------------8<-----------------------------------
7.21.4.2 p3 The strcmp function returns an integer greater than, equal
to, or less than zero, accordingly as the string pointed to by s1 is
greater than, equal to, or less than the string pointed to by s2.
-------------------------------->8-----------------------------------
Où dans la norme la notion de "chaîne plus grande qu'une autre" est-elle
définie ?
Merci
Bonjour,
Deux choses me gênent dans la description de la fonction strcmp dans la
norme (C90 tout comme C99) :
1er point :
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the difference
between the values of the first pair of characters (both interpreted as
unsigned char) that differ in the objects being compared.
-------------------------------->8-----------------------------------
Pourquoi employer l'expression "is determined" qui est assez vague
(pour moi, ici ça veut dire "est déterminé") ? Pourquoi ne pas dire
que les signes sont identiques (donc "coincides with" ou "matches" ou
"is identical to", etc) ?
2ème point :
--------------------------------8<-----------------------------------
7.21.4.2 p3 The strcmp function returns an integer greater than, equal
to, or less than zero, accordingly as the string pointed to by s1 is
greater than, equal to, or less than the string pointed to by s2.
-------------------------------->8-----------------------------------
Où dans la norme la notion de "chaîne plus grande qu'une autre" est-elle
définie ?
Merci
Bonjour,
Deux choses me gênent dans la description de la fonction strcmp dans la
norme (C90 tout comme C99) :
1er point :
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the difference
between the values of the first pair of characters (both interpreted as
unsigned char) that differ in the objects being compared.
-------------------------------->8-----------------------------------
Pourquoi employer l'expression "is determined" qui est assez vague
(pour moi, ici ça veut dire "est déterminé") ? Pourquoi ne pas dire
que les signes sont identiques (donc "coincides with" ou "matches" ou
"is identical to", etc) ?
2ème point :
--------------------------------8<-----------------------------------
7.21.4.2 p3 The strcmp function returns an integer greater than, equal
to, or less than zero, accordingly as the string pointed to by s1 is
greater than, equal to, or less than the string pointed to by s2.
-------------------------------->8-----------------------------------
Où dans la norme la notion de "chaîne plus grande qu'une autre" est-elle
définie ?
Bonjour,
Deux choses me gênent dans la description de la fonction strcmp dans la
norme (C90 tout comme C99) :
1er point :
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the difference
between the values of the first pair of characters (both interpreted as
unsigned char) that differ in the objects being compared.
-------------------------------->8-----------------------------------
Pourquoi employer l'expression "is determined" qui est assez vague
(pour moi, ici ça veut dire "est déterminé") ? Pourquoi ne pas dire
que les signes sont identiques (donc "coincides with" ou "matches" ou
"is identical to", etc) ?
2ème point :
--------------------------------8<-----------------------------------
7.21.4.2 p3 The strcmp function returns an integer greater than, equal
to, or less than zero, accordingly as the string pointed to by s1 is
greater than, equal to, or less than the string pointed to by s2.
-------------------------------->8-----------------------------------
Où dans la norme la notion de "chaîne plus grande qu'une autre" est-elle
définie ?
Bonjour,
Deux choses me gênent dans la description de la fonction strcmp dans la
norme (C90 tout comme C99) :
1er point :
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the difference
between the values of the first pair of characters (both interpreted as
unsigned char) that differ in the objects being compared.
-------------------------------->8-----------------------------------
Pourquoi employer l'expression "is determined" qui est assez vague
(pour moi, ici ça veut dire "est déterminé") ? Pourquoi ne pas dire
que les signes sont identiques (donc "coincides with" ou "matches" ou
"is identical to", etc) ?
2ème point :
--------------------------------8<-----------------------------------
7.21.4.2 p3 The strcmp function returns an integer greater than, equal
to, or less than zero, accordingly as the string pointed to by s1 is
greater than, equal to, or less than the string pointed to by s2.
-------------------------------->8-----------------------------------
Où dans la norme la notion de "chaîne plus grande qu'une autre" est-elle
définie ?
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the
difference between the values of the first pair of characters (both
interpreted as unsigned char) that differ in the objects being compared.
-------------------------------->8-----------------------------------
Personnellement, Je préfère la formulation du standard qui décrit une
action (calculer le signe d'une valeur) et non un état (identité des
deux signes).
7.1.1.1
[...] the value of a string is the sequence of the values of the
contained characters, in order.
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the
difference between the values of the first pair of characters (both
interpreted as unsigned char) that differ in the objects being compared.
-------------------------------->8-----------------------------------
Personnellement, Je préfère la formulation du standard qui décrit une
action (calculer le signe d'une valeur) et non un état (identité des
deux signes).
7.1.1.1
[...] the value of a string is the sequence of the values of the
contained characters, in order.
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the
difference between the values of the first pair of characters (both
interpreted as unsigned char) that differ in the objects being compared.
-------------------------------->8-----------------------------------
Personnellement, Je préfère la formulation du standard qui décrit une
action (calculer le signe d'une valeur) et non un état (identité des
deux signes).
7.1.1.1
[...] the value of a string is the sequence of the values of the
contained characters, in order.
Richard Delorme a écrit :
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the
difference between the values of the first pair of characters (both
interpreted as unsigned char) that differ in the objects being compared.
-------------------------------->8-----------------------------------
Personnellement, Je préfère la formulation du standard qui décrit une
action (calculer le signe d'une valeur) et non un état (identité des
deux signes).
Certes mais le problème est que si je suis à la lettre ce que dit
7.21.4p1, je NE sais PAS quel est le signe de la valeur retournée.
C'est comme si je disais : le signe du trinôme du second degré réel
ax*x+b*x+c est déterminé par le signe de 4*a*c-b*b. C'est vrai mais
c'est incomplet car non exploitable tel quel.
Au passage, j'observe que la nature du contenu de ce sous paragraphe de
la Norme est assez floue :
1°) dans le paragraphe 7.21.4, chaque sous-paragraphe a son titre et sa
fonction : soit il introduit une fonction soit c'est "synopis", soit
c'est "description" ou soit c'est "returns". Le paragraphe cité
ci-dessus n'as pas de titre, c'est une sorte de préambule qu'on ne sait
pas à quoi rattacher ;
2°) dans le paragraphe 7.21 (<tring.h>), les fonctions sont regroupées
par type de fonctionnalité (fonctions de copie, de concaténation, etc).
Le seul paragraphe qui contienne un préambule est notre paragraphe 7.21.4.
Au passage puisqu'il est question de "chaîne" et du § 7.1.1 (partie
/Library/ de la Norme), il est quand même surprenant que ce soit là
qu'on y trouve la définition de "string" alors que ce terme est employé
dans la partie /Language/ à de très nombreuses occasions, au point que
je me pose parfois la question : parle-t-on des même "string" dans ces
deux parties ?
Richard Delorme a écrit :
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the
difference between the values of the first pair of characters (both
interpreted as unsigned char) that differ in the objects being compared.
-------------------------------->8-----------------------------------
Personnellement, Je préfère la formulation du standard qui décrit une
action (calculer le signe d'une valeur) et non un état (identité des
deux signes).
Certes mais le problème est que si je suis à la lettre ce que dit
7.21.4p1, je NE sais PAS quel est le signe de la valeur retournée.
C'est comme si je disais : le signe du trinôme du second degré réel
ax*x+b*x+c est déterminé par le signe de 4*a*c-b*b. C'est vrai mais
c'est incomplet car non exploitable tel quel.
Au passage, j'observe que la nature du contenu de ce sous paragraphe de
la Norme est assez floue :
1°) dans le paragraphe 7.21.4, chaque sous-paragraphe a son titre et sa
fonction : soit il introduit une fonction soit c'est "synopis", soit
c'est "description" ou soit c'est "returns". Le paragraphe cité
ci-dessus n'as pas de titre, c'est une sorte de préambule qu'on ne sait
pas à quoi rattacher ;
2°) dans le paragraphe 7.21 (<tring.h>), les fonctions sont regroupées
par type de fonctionnalité (fonctions de copie, de concaténation, etc).
Le seul paragraphe qui contienne un préambule est notre paragraphe 7.21.4.
Au passage puisqu'il est question de "chaîne" et du § 7.1.1 (partie
/Library/ de la Norme), il est quand même surprenant que ce soit là
qu'on y trouve la définition de "string" alors que ce terme est employé
dans la partie /Language/ à de très nombreuses occasions, au point que
je me pose parfois la question : parle-t-on des même "string" dans ces
deux parties ?
Richard Delorme a écrit :
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the
difference between the values of the first pair of characters (both
interpreted as unsigned char) that differ in the objects being compared.
-------------------------------->8-----------------------------------
Personnellement, Je préfère la formulation du standard qui décrit une
action (calculer le signe d'une valeur) et non un état (identité des
deux signes).
Certes mais le problème est que si je suis à la lettre ce que dit
7.21.4p1, je NE sais PAS quel est le signe de la valeur retournée.
C'est comme si je disais : le signe du trinôme du second degré réel
ax*x+b*x+c est déterminé par le signe de 4*a*c-b*b. C'est vrai mais
c'est incomplet car non exploitable tel quel.
Au passage, j'observe que la nature du contenu de ce sous paragraphe de
la Norme est assez floue :
1°) dans le paragraphe 7.21.4, chaque sous-paragraphe a son titre et sa
fonction : soit il introduit une fonction soit c'est "synopis", soit
c'est "description" ou soit c'est "returns". Le paragraphe cité
ci-dessus n'as pas de titre, c'est une sorte de préambule qu'on ne sait
pas à quoi rattacher ;
2°) dans le paragraphe 7.21 (<tring.h>), les fonctions sont regroupées
par type de fonctionnalité (fonctions de copie, de concaténation, etc).
Le seul paragraphe qui contienne un préambule est notre paragraphe 7.21.4.
Au passage puisqu'il est question de "chaîne" et du § 7.1.1 (partie
/Library/ de la Norme), il est quand même surprenant que ce soit là
qu'on y trouve la définition de "string" alors que ce terme est employé
dans la partie /Language/ à de très nombreuses occasions, au point que
je me pose parfois la question : parle-t-on des même "string" dans ces
deux parties ?
A te lire, on
devrait comprendre qu'une chose déterminée reste indéterminée, ce qui me
semble quelque part absurde.
Bof, il y a plein de préambule semblable dans le chapitre 7 de la norme.
Dans la partie /language/, on parle surtout de "string literal",
qui est
en effet quelque chose de différent.
Sinon, cette partie contient aussi
des "forward references" vers le § 7.1.1. (p.ex. au § 5.2.1).
De plus,
la norme s'appuie sur d'autres glossaires normalisés (IOS/IEC 2382) où
la notion de /character string/ est définie.
A te lire, on
devrait comprendre qu'une chose déterminée reste indéterminée, ce qui me
semble quelque part absurde.
Bof, il y a plein de préambule semblable dans le chapitre 7 de la norme.
Dans la partie /language/, on parle surtout de "string literal",
qui est
en effet quelque chose de différent.
Sinon, cette partie contient aussi
des "forward references" vers le § 7.1.1. (p.ex. au § 5.2.1).
De plus,
la norme s'appuie sur d'autres glossaires normalisés (IOS/IEC 2382) où
la notion de /character string/ est définie.
A te lire, on
devrait comprendre qu'une chose déterminée reste indéterminée, ce qui me
semble quelque part absurde.
Bof, il y a plein de préambule semblable dans le chapitre 7 de la norme.
Dans la partie /language/, on parle surtout de "string literal",
qui est
en effet quelque chose de différent.
Sinon, cette partie contient aussi
des "forward references" vers le § 7.1.1. (p.ex. au § 5.2.1).
De plus,
la norme s'appuie sur d'autres glossaires normalisés (IOS/IEC 2382) où
la notion de /character string/ est définie.
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the
difference between the values of the first pair of characters (both
interpreted as unsigned char) that differ in the objects being
compared.
-------------------------------->8-----------------------------------
Certes mais le problème est que si je suis à la lettre ce que dit
7.21.4p1, je NE sais PAS quel est le signe de la valeur retournée.
7.1.1.1
[...] the value of a string is the sequence of the values of the
contained characters, in order.
[...] cette précision indique ce qu'est la valeur d'une
chaîne mais ne définit pas la relation d'ordre entre les chaînes.
Le préambule laisse entendre qu'il s'agit de la relation d'ordre
lexicographique
-- au demeurant, croissant ou décroissant, je ne vois
pas comment on pourrait le dire (à cause de l'expression vague "is
determined").
Bref, ce §7.21.4 me paraît extrêmement mal rédigé.
Au passage puisqu'il est question de "chaîne" et du § 7.1.1 (partie
/Library/ de la Norme), il est quand même surprenant que ce soit là
qu'on y trouve la définition de "string" alors que ce terme est
employé dans la partie /Language/ à de très nombreuses occasions,
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the
difference between the values of the first pair of characters (both
interpreted as unsigned char) that differ in the objects being
compared.
-------------------------------->8-----------------------------------
Certes mais le problème est que si je suis à la lettre ce que dit
7.21.4p1, je NE sais PAS quel est le signe de la valeur retournée.
7.1.1.1
[...] the value of a string is the sequence of the values of the
contained characters, in order.
[...] cette précision indique ce qu'est la valeur d'une
chaîne mais ne définit pas la relation d'ordre entre les chaînes.
Le préambule laisse entendre qu'il s'agit de la relation d'ordre
lexicographique
-- au demeurant, croissant ou décroissant, je ne vois
pas comment on pourrait le dire (à cause de l'expression vague "is
determined").
Bref, ce §7.21.4 me paraît extrêmement mal rédigé.
Au passage puisqu'il est question de "chaîne" et du § 7.1.1 (partie
/Library/ de la Norme), il est quand même surprenant que ce soit là
qu'on y trouve la définition de "string" alors que ce terme est
employé dans la partie /Language/ à de très nombreuses occasions,
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the
difference between the values of the first pair of characters (both
interpreted as unsigned char) that differ in the objects being
compared.
-------------------------------->8-----------------------------------
Certes mais le problème est que si je suis à la lettre ce que dit
7.21.4p1, je NE sais PAS quel est le signe de la valeur retournée.
7.1.1.1
[...] the value of a string is the sequence of the values of the
contained characters, in order.
[...] cette précision indique ce qu'est la valeur d'une
chaîne mais ne définit pas la relation d'ordre entre les chaînes.
Le préambule laisse entendre qu'il s'agit de la relation d'ordre
lexicographique
-- au demeurant, croissant ou décroissant, je ne vois
pas comment on pourrait le dire (à cause de l'expression vague "is
determined").
Bref, ce §7.21.4 me paraît extrêmement mal rédigé.
Au passage puisqu'il est question de "chaîne" et du § 7.1.1 (partie
/Library/ de la Norme), il est quand même surprenant que ce soit là
qu'on y trouve la définition de "string" alors que ce terme est
employé dans la partie /Language/ à de très nombreuses occasions,
Par rapport à l'ordre lexicographique (codage des caractères).
Par rapport à l'ordre lexicographique (codage des caractères).
Par rapport à l'ordre lexicographique (codage des caractères).
Le verbe "déterminer" exprime quelque chose de fort et d'important.
Si je dis z est déterminé par y et z, cela veut juste dire qu'il
existe une fonction f telle que z=f(x,y). Maintenant que
f(x,y)=sqrt(x*x+y*y) ou f(x,y)=|x|+|y| ou que sais-je encore,
ce n'est pas pareil.
Ce que je dis c'est que la Norme n'exprime pas COMMENT le signe du
retour est lié au signe de la différence.
Il me semble quand même beaucoup plus précis de dire que le signe est
non seulement "déterminé" mais _identique_ au signe de la différence.
Dire cela évite en outre toutes les explications vaseuses et tout
aussi floues sur "la chaîne plus grande qu'une autre" dans un sens
qui n'a jamais été défini.
Dans la partie /language/, on parle surtout de "string literal",
Effectivement mais pas seulement, cf. par exemple le passage où il est
question des arguments de la ligne de commande.
qui est
en effet quelque chose de différent.
C'est ce que la norme dit en effet, partie Langage mais en se
référant à la partie Library (bonjour la clarté !) La différence ?
c'est vraiment discuter du sexe des strings.
Voici les définitions :
A string is a contiguous sequence of characters terminated by and
including the first null character.
De l'autre côté :
A character string literal is a sequence of zero or more multibyte
characters enclosed in double-quotes, as in "xyz"
(au passage, quand même assez extraordinaire de définir un concept par
le recours à un exemple, visez le 'as in "xyz"' !!).
La différence ? Réponse :
A character string literal need not be a string (see 7.1.1), because a
null character may be embedded in it by a escape sequence.
Donc quoi ? "ti ti" serait une chaine littérale
qui ne serait pas une chaîne ?
Alors, là je demande à comprendre la validité de ce
contre-exemple au vu des définitions données ci-dessus.
En plus, il faut noter la logique : une chaine littérale de caractères
n'est pas nécessairement une chaîne !
Le verbe "déterminer" exprime quelque chose de fort et d'important.
Si je dis z est déterminé par y et z, cela veut juste dire qu'il
existe une fonction f telle que z=f(x,y). Maintenant que
f(x,y)=sqrt(x*x+y*y) ou f(x,y)=|x|+|y| ou que sais-je encore,
ce n'est pas pareil.
Ce que je dis c'est que la Norme n'exprime pas COMMENT le signe du
retour est lié au signe de la différence.
Il me semble quand même beaucoup plus précis de dire que le signe est
non seulement "déterminé" mais _identique_ au signe de la différence.
Dire cela évite en outre toutes les explications vaseuses et tout
aussi floues sur "la chaîne plus grande qu'une autre" dans un sens
qui n'a jamais été défini.
Dans la partie /language/, on parle surtout de "string literal",
Effectivement mais pas seulement, cf. par exemple le passage où il est
question des arguments de la ligne de commande.
qui est
en effet quelque chose de différent.
C'est ce que la norme dit en effet, partie Langage mais en se
référant à la partie Library (bonjour la clarté !) La différence ?
c'est vraiment discuter du sexe des strings.
Voici les définitions :
A string is a contiguous sequence of characters terminated by and
including the first null character.
De l'autre côté :
A character string literal is a sequence of zero or more multibyte
characters enclosed in double-quotes, as in "xyz"
(au passage, quand même assez extraordinaire de définir un concept par
le recours à un exemple, visez le 'as in "xyz"' !!).
La différence ? Réponse :
A character string literal need not be a string (see 7.1.1), because a
null character may be embedded in it by a escape sequence.
Donc quoi ? "ti ti" serait une chaine littérale
qui ne serait pas une chaîne ?
Alors, là je demande à comprendre la validité de ce
contre-exemple au vu des définitions données ci-dessus.
En plus, il faut noter la logique : une chaine littérale de caractères
n'est pas nécessairement une chaîne !
Le verbe "déterminer" exprime quelque chose de fort et d'important.
Si je dis z est déterminé par y et z, cela veut juste dire qu'il
existe une fonction f telle que z=f(x,y). Maintenant que
f(x,y)=sqrt(x*x+y*y) ou f(x,y)=|x|+|y| ou que sais-je encore,
ce n'est pas pareil.
Ce que je dis c'est que la Norme n'exprime pas COMMENT le signe du
retour est lié au signe de la différence.
Il me semble quand même beaucoup plus précis de dire que le signe est
non seulement "déterminé" mais _identique_ au signe de la différence.
Dire cela évite en outre toutes les explications vaseuses et tout
aussi floues sur "la chaîne plus grande qu'une autre" dans un sens
qui n'a jamais été défini.
Dans la partie /language/, on parle surtout de "string literal",
Effectivement mais pas seulement, cf. par exemple le passage où il est
question des arguments de la ligne de commande.
qui est
en effet quelque chose de différent.
C'est ce que la norme dit en effet, partie Langage mais en se
référant à la partie Library (bonjour la clarté !) La différence ?
c'est vraiment discuter du sexe des strings.
Voici les définitions :
A string is a contiguous sequence of characters terminated by and
including the first null character.
De l'autre côté :
A character string literal is a sequence of zero or more multibyte
characters enclosed in double-quotes, as in "xyz"
(au passage, quand même assez extraordinaire de définir un concept par
le recours à un exemple, visez le 'as in "xyz"' !!).
La différence ? Réponse :
A character string literal need not be a string (see 7.1.1), because a
null character may be embedded in it by a escape sequence.
Donc quoi ? "ti ti" serait une chaine littérale
qui ne serait pas une chaîne ?
Alors, là je demande à comprendre la validité de ce
contre-exemple au vu des définitions données ci-dessus.
En plus, il faut noter la logique : une chaine littérale de caractères
n'est pas nécessairement une chaîne !
En news:48962096$0$3720$, candide va escriure:--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the
difference between the values of the first pair of characters (both
interpreted as unsigned char) that differ in the objects being
compared.
-------------------------------->8-----------------------------------
Certes mais le problème est que si je suis à la lettre ce que dit
7.21.4p1, je NE sais PAS quel est le signe de la valeur retournée.
Et c'est pourquoi
la relation univoque entre le signe retourné et le résultat de la
comparaison (résultat qui dépend de la comparaison utilisée, qui elle-même
dépend de la fonction).
Non seulement les petits bouts cités (en incluant 7.21.4.2p3) suffisent pour
définir deux relations d'ordre (> et >=)
: qqs deux chaînes avec leurs représentations comme suites d'entiers de type
unsigned char, il n'y a qu'une seule possibilité dans le triplet
{strictement_positif, nul, strictement_négatif} ; et si on prend les deux
premiers (>=), c'est RAT.
Le préambule laisse entendre qu'il s'agit de la relation d'ordre
lexicographique
D'où tires-tu cette interprétation (nouvelle pour moi, je ne savais pas que
z<ñ, ou encore que z<A, dans l'ordre lexicographique) ?
-- au demeurant, croissant ou décroissant, je ne vois
pas comment on pourrait le dire (à cause de l'expression vague "is
determined").
L'ordre est toujours croissant, du fait du texte qui associe les valeurs
positives à l'ordre de >.
Bref, ce §7.21.4 me paraît extrêmement mal rédigé.
Tes propositions d'améliorations doivent être envoyées (en anglais) au
comité WG14.
La /chaîne/ de la partie 7 possède la propriété complémentaire d'avoir un
zéro final, propriété qui est essentielle dans la partie 7 et qui n'est que
très accessoire dans les occurences des /littéraux chaîne/ de la partie 6.
En news:48962096$0$3720$426a74cc@news.free.fr, candide va escriure:
--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the
difference between the values of the first pair of characters (both
interpreted as unsigned char) that differ in the objects being
compared.
-------------------------------->8-----------------------------------
Certes mais le problème est que si je suis à la lettre ce que dit
7.21.4p1, je NE sais PAS quel est le signe de la valeur retournée.
Et c'est pourquoi
la relation univoque entre le signe retourné et le résultat de la
comparaison (résultat qui dépend de la comparaison utilisée, qui elle-même
dépend de la fonction).
Non seulement les petits bouts cités (en incluant 7.21.4.2p3) suffisent pour
définir deux relations d'ordre (> et >=)
: qqs deux chaînes avec leurs représentations comme suites d'entiers de type
unsigned char, il n'y a qu'une seule possibilité dans le triplet
{strictement_positif, nul, strictement_négatif} ; et si on prend les deux
premiers (>=), c'est RAT.
Le préambule laisse entendre qu'il s'agit de la relation d'ordre
lexicographique
D'où tires-tu cette interprétation (nouvelle pour moi, je ne savais pas que
z<ñ, ou encore que z<A, dans l'ordre lexicographique) ?
-- au demeurant, croissant ou décroissant, je ne vois
pas comment on pourrait le dire (à cause de l'expression vague "is
determined").
L'ordre est toujours croissant, du fait du texte qui associe les valeurs
positives à l'ordre de >.
Bref, ce §7.21.4 me paraît extrêmement mal rédigé.
Tes propositions d'améliorations doivent être envoyées (en anglais) au
comité WG14.
La /chaîne/ de la partie 7 possède la propriété complémentaire d'avoir un
zéro final, propriété qui est essentielle dans la partie 7 et qui n'est que
très accessoire dans les occurences des /littéraux chaîne/ de la partie 6.
En news:48962096$0$3720$, candide va escriure:--------------------------------8<-----------------------------------
7.21.4 Comparison functions
1 The sign of a nonzero value returned by the comparison functions
memcmp, strcmp, and strncmp is determined by the sign of the
difference between the values of the first pair of characters (both
interpreted as unsigned char) that differ in the objects being
compared.
-------------------------------->8-----------------------------------
Certes mais le problème est que si je suis à la lettre ce que dit
7.21.4p1, je NE sais PAS quel est le signe de la valeur retournée.
Et c'est pourquoi
la relation univoque entre le signe retourné et le résultat de la
comparaison (résultat qui dépend de la comparaison utilisée, qui elle-même
dépend de la fonction).
Non seulement les petits bouts cités (en incluant 7.21.4.2p3) suffisent pour
définir deux relations d'ordre (> et >=)
: qqs deux chaînes avec leurs représentations comme suites d'entiers de type
unsigned char, il n'y a qu'une seule possibilité dans le triplet
{strictement_positif, nul, strictement_négatif} ; et si on prend les deux
premiers (>=), c'est RAT.
Le préambule laisse entendre qu'il s'agit de la relation d'ordre
lexicographique
D'où tires-tu cette interprétation (nouvelle pour moi, je ne savais pas que
z<ñ, ou encore que z<A, dans l'ordre lexicographique) ?
-- au demeurant, croissant ou décroissant, je ne vois
pas comment on pourrait le dire (à cause de l'expression vague "is
determined").
L'ordre est toujours croissant, du fait du texte qui associe les valeurs
positives à l'ordre de >.
Bref, ce §7.21.4 me paraît extrêmement mal rédigé.
Tes propositions d'améliorations doivent être envoyées (en anglais) au
comité WG14.
La /chaîne/ de la partie 7 possède la propriété complémentaire d'avoir un
zéro final, propriété qui est essentielle dans la partie 7 et qui n'est que
très accessoire dans les occurences des /littéraux chaîne/ de la partie 6.
LEXICOGRAPHIQUE adj. XIXe siècle. Dérivé de /lexicographie/.
Relatif à la lexicographie. /Travaux lexicographiques./
LEXICOGRAPHIE n. f. XVIIIe siècle. Dérivé de /lexicographe/.
1. Science et technique de la composition et de la rédaction de lexiques,
de dictionnaires. [...]
ex. Dictionnaire de l'Académie, neuvième édition.
LEXICOGRAPHIQUE adj. XIXe siècle. Dérivé de /lexicographie/.
Relatif à la lexicographie. /Travaux lexicographiques./
LEXICOGRAPHIE n. f. XVIIIe siècle. Dérivé de /lexicographe/.
1. Science et technique de la composition et de la rédaction de lexiques,
de dictionnaires. [...]
ex. Dictionnaire de l'Académie, neuvième édition.
LEXICOGRAPHIQUE adj. XIXe siècle. Dérivé de /lexicographie/.
Relatif à la lexicographie. /Travaux lexicographiques./
LEXICOGRAPHIE n. f. XVIIIe siècle. Dérivé de /lexicographe/.
1. Science et technique de la composition et de la rédaction de lexiques,
de dictionnaires. [...]
ex. Dictionnaire de l'Académie, neuvième édition.