Dans news:,D'après la rationnale (http://www.lysator.liu.se/c/rat/title.html) :
Merci pour cette adresse James... Je pensais l'avoir (ou une autre
semblable), mais il semble que non...
On remarque que même pour le comité C, la forme usuelle (ou
« conventionnelle »), c'est (*pf)().
Effectivement, mais j'avais toujours compris qu'elle était
simplement préférée et non la seule initialement.
En ce qui concerne la motivation de base, je suis prèsque sûr que
l'extention était assez répandue -- je m'en souviens de son
existance bien avant C90, et j'avoue avoir été étonné quand Gaby a
dit qu'elle n'était pas dans K&R 1.
Toi aussi ? Bien :-)
Je n'ai fait du C pré-ANSI que pendant 6-7 ans, mais il me semble bien
que mon compilateur acceptait pf() quand j'ai commencé à en faire
usage. Était-ce un compilateur ANSI C ou simplement une possibilité
offerte par mon compilateur, je ne sais pas...
[...]Je ne crois pas qu'elle ait fait l'unanimité dans la communauté C
non plus. Le problème, c'est que c'était une pratique existante avec
certains compilateurs.
J'avoue que j'ai toujours trouvé le déréférencement (et la prise
d'adresse) explicite un peu artificiel. L'analogie avec les tableaux
me semble vraiment naturelle.
Est-ce que j'aurais eu une façon de voir qui vient d'autre langage ?
Je ne me souviens plus du passage de fonction en Pascal...
Quand même :
int UneFct(int n) { ... }
int v[10];
void Naturelle(int v[], int F(int)) // Pointeurs implicites
{
v[2]= F(v[4]);
}
void MoinsNaturelle(int *pv, int (*pF)(int)) // Explicites
{
v[2]= (*pF)(v[4]); // Et non pas (*v)[2], etc.
}
int main()
{
Naturelle(v, UneFct);
MoinsNaturelle(v, &UneFct); // &v ? ...
// N.B. Évidemment on peut appeler les deux fonctions
// de la même façon...
}
En fait, si j'avais Ritchie devant moi, je lui demanderais pourquoi,
dans son langage original, on peut écrire v pour &v[0] au lieu
d'exiger & comme pour les fonctions... La solution ANSI me semble plus
uniforme.
Dans news:d6652001.0401062356.65f3e7ec@posting.google.com,
D'après la rationnale (http://www.lysator.liu.se/c/rat/title.html) :
Merci pour cette adresse James... Je pensais l'avoir (ou une autre
semblable), mais il semble que non...
On remarque que même pour le comité C, la forme usuelle (ou
« conventionnelle »), c'est (*pf)().
Effectivement, mais j'avais toujours compris qu'elle était
simplement préférée et non la seule initialement.
En ce qui concerne la motivation de base, je suis prèsque sûr que
l'extention était assez répandue -- je m'en souviens de son
existance bien avant C90, et j'avoue avoir été étonné quand Gaby a
dit qu'elle n'était pas dans K&R 1.
Toi aussi ? Bien :-)
Je n'ai fait du C pré-ANSI que pendant 6-7 ans, mais il me semble bien
que mon compilateur acceptait pf() quand j'ai commencé à en faire
usage. Était-ce un compilateur ANSI C ou simplement une possibilité
offerte par mon compilateur, je ne sais pas...
[...]
Je ne crois pas qu'elle ait fait l'unanimité dans la communauté C
non plus. Le problème, c'est que c'était une pratique existante avec
certains compilateurs.
J'avoue que j'ai toujours trouvé le déréférencement (et la prise
d'adresse) explicite un peu artificiel. L'analogie avec les tableaux
me semble vraiment naturelle.
Est-ce que j'aurais eu une façon de voir qui vient d'autre langage ?
Je ne me souviens plus du passage de fonction en Pascal...
Quand même :
int UneFct(int n) { ... }
int v[10];
void Naturelle(int v[], int F(int)) // Pointeurs implicites
{
v[2]= F(v[4]);
}
void MoinsNaturelle(int *pv, int (*pF)(int)) // Explicites
{
v[2]= (*pF)(v[4]); // Et non pas (*v)[2], etc.
}
int main()
{
Naturelle(v, UneFct);
MoinsNaturelle(v, &UneFct); // &v ? ...
// N.B. Évidemment on peut appeler les deux fonctions
// de la même façon...
}
En fait, si j'avais Ritchie devant moi, je lui demanderais pourquoi,
dans son langage original, on peut écrire v pour &v[0] au lieu
d'exiger & comme pour les fonctions... La solution ANSI me semble plus
uniforme.
Dans news:,D'après la rationnale (http://www.lysator.liu.se/c/rat/title.html) :
Merci pour cette adresse James... Je pensais l'avoir (ou une autre
semblable), mais il semble que non...
On remarque que même pour le comité C, la forme usuelle (ou
« conventionnelle »), c'est (*pf)().
Effectivement, mais j'avais toujours compris qu'elle était
simplement préférée et non la seule initialement.
En ce qui concerne la motivation de base, je suis prèsque sûr que
l'extention était assez répandue -- je m'en souviens de son
existance bien avant C90, et j'avoue avoir été étonné quand Gaby a
dit qu'elle n'était pas dans K&R 1.
Toi aussi ? Bien :-)
Je n'ai fait du C pré-ANSI que pendant 6-7 ans, mais il me semble bien
que mon compilateur acceptait pf() quand j'ai commencé à en faire
usage. Était-ce un compilateur ANSI C ou simplement une possibilité
offerte par mon compilateur, je ne sais pas...
[...]Je ne crois pas qu'elle ait fait l'unanimité dans la communauté C
non plus. Le problème, c'est que c'était une pratique existante avec
certains compilateurs.
J'avoue que j'ai toujours trouvé le déréférencement (et la prise
d'adresse) explicite un peu artificiel. L'analogie avec les tableaux
me semble vraiment naturelle.
Est-ce que j'aurais eu une façon de voir qui vient d'autre langage ?
Je ne me souviens plus du passage de fonction en Pascal...
Quand même :
int UneFct(int n) { ... }
int v[10];
void Naturelle(int v[], int F(int)) // Pointeurs implicites
{
v[2]= F(v[4]);
}
void MoinsNaturelle(int *pv, int (*pF)(int)) // Explicites
{
v[2]= (*pF)(v[4]); // Et non pas (*v)[2], etc.
}
int main()
{
Naturelle(v, UneFct);
MoinsNaturelle(v, &UneFct); // &v ? ...
// N.B. Évidemment on peut appeler les deux fonctions
// de la même façon...
}
En fait, si j'avais Ritchie devant moi, je lui demanderais pourquoi,
dans son langage original, on peut écrire v pour &v[0] au lieu
d'exiger & comme pour les fonctions... La solution ANSI me semble plus
uniforme.
| Ça ne concerne que mes activités professionnelles. À titre de
| curiosité d'adolescent, j'ai appris l'assembleur 1401 en 1965, mais
| je m'en suis jamais réelement servi. Mes premiers contacts avec C++
| était aussi privé, aux alentours de 1987.
Une version que je possédais jusqu'à présent aux alentours de 1990. Je
remets ma base de données à jour.
| Ça ne concerne que mes activités professionnelles. À titre de
| curiosité d'adolescent, j'ai appris l'assembleur 1401 en 1965, mais
| je m'en suis jamais réelement servi. Mes premiers contacts avec C++
| était aussi privé, aux alentours de 1987.
Une version que je possédais jusqu'à présent aux alentours de 1990. Je
remets ma base de données à jour.
| Ça ne concerne que mes activités professionnelles. À titre de
| curiosité d'adolescent, j'ai appris l'assembleur 1401 en 1965, mais
| je m'en suis jamais réelement servi. Mes premiers contacts avec C++
| était aussi privé, aux alentours de 1987.
Une version que je possédais jusqu'à présent aux alentours de 1990. Je
remets ma base de données à jour.
"Michel Michaud" wrote in message
news:<1fZKb.45704$...En fait, si j'avais Ritchie devant moi, je lui demanderais
pourquoi, dans son langage original, on peut écrire v pour &v[0]
au lieu d'exiger & comme pour les fonctions... La solution ANSI
me semble plus uniforme.
En somme, ce que tu veux c'est d'étendre le défaut des tableaux à
des fonctions aussi.
La motivation pour cette anomalie de comportement avec les tableaux
est due à l'histoire ; voir la spécification de B, et les documents
historiques à http://www.lysator.liu.se/c/. Mais c'est un défaut :
pourquoi est-ce que les tableaux fonctionnent différemment que les
autres types ?
"Michel Michaud" <mm@gdzid.com> wrote in message
news:<1fZKb.45704$BA6.990753@news20.bellglobal.com>...
En fait, si j'avais Ritchie devant moi, je lui demanderais
pourquoi, dans son langage original, on peut écrire v pour &v[0]
au lieu d'exiger & comme pour les fonctions... La solution ANSI
me semble plus uniforme.
En somme, ce que tu veux c'est d'étendre le défaut des tableaux à
des fonctions aussi.
La motivation pour cette anomalie de comportement avec les tableaux
est due à l'histoire ; voir la spécification de B, et les documents
historiques à http://www.lysator.liu.se/c/. Mais c'est un défaut :
pourquoi est-ce que les tableaux fonctionnent différemment que les
autres types ?
"Michel Michaud" wrote in message
news:<1fZKb.45704$...En fait, si j'avais Ritchie devant moi, je lui demanderais
pourquoi, dans son langage original, on peut écrire v pour &v[0]
au lieu d'exiger & comme pour les fonctions... La solution ANSI
me semble plus uniforme.
En somme, ce que tu veux c'est d'étendre le défaut des tableaux à
des fonctions aussi.
La motivation pour cette anomalie de comportement avec les tableaux
est due à l'histoire ; voir la spécification de B, et les documents
historiques à http://www.lysator.liu.se/c/. Mais c'est un défaut :
pourquoi est-ce que les tableaux fonctionnent différemment que les
autres types ?
writes:
| > > En ce qui concerne la motivation de base, je suis prèsque sûr
| > > que l'extention était assez répandue -- je m'en souviens de son
| > > existance bien avant C90, et j'avoue avoir été étonné quand Gaby
| > > a dit qu'elle n'était pas dans K&R 1.
| > Toi aussi ? Bien :-)
| Oui. Ça fait au moins vingt ans depuis que j'ai lu K&R. Depuis que je me
| rappelle, pf() était « légal », et utilisé par certains programmeurs. Je
| ne l'ai jamais aimé, je ne m'en suis jamais servi, mais je le croyais
| légal depuis le début.
Toutes les versions officielles de GCC à ce jour sont écrites en C
K+R. (Cela changera avec GCC-3.4.0) Et on n'utilisait pas « pf() »
précisement parce que ce n'est pas du C K+R ;
kanze@gabi-soft.fr writes:
| > > En ce qui concerne la motivation de base, je suis prèsque sûr
| > > que l'extention était assez répandue -- je m'en souviens de son
| > > existance bien avant C90, et j'avoue avoir été étonné quand Gaby
| > > a dit qu'elle n'était pas dans K&R 1.
| > Toi aussi ? Bien :-)
| Oui. Ça fait au moins vingt ans depuis que j'ai lu K&R. Depuis que je me
| rappelle, pf() était « légal », et utilisé par certains programmeurs. Je
| ne l'ai jamais aimé, je ne m'en suis jamais servi, mais je le croyais
| légal depuis le début.
Toutes les versions officielles de GCC à ce jour sont écrites en C
K+R. (Cela changera avec GCC-3.4.0) Et on n'utilisait pas « pf() »
précisement parce que ce n'est pas du C K+R ;
writes:
| > > En ce qui concerne la motivation de base, je suis prèsque sûr
| > > que l'extention était assez répandue -- je m'en souviens de son
| > > existance bien avant C90, et j'avoue avoir été étonné quand Gaby
| > > a dit qu'elle n'était pas dans K&R 1.
| > Toi aussi ? Bien :-)
| Oui. Ça fait au moins vingt ans depuis que j'ai lu K&R. Depuis que je me
| rappelle, pf() était « légal », et utilisé par certains programmeurs. Je
| ne l'ai jamais aimé, je ne m'en suis jamais servi, mais je le croyais
| légal depuis le début.
Toutes les versions officielles de GCC à ce jour sont écrites en C
K+R. (Cela changera avec GCC-3.4.0) Et on n'utilisait pas « pf() »
précisement parce que ce n'est pas du C K+R ;
writes:
| Gabriel Dos Reis wrote in message
| news:...
| [...]
| > | Ça ne concerne que mes activités professionnelles. À titre de
| > | curiosité d'adolescent, j'ai appris l'assembleur 1401 en 1965,
| > | mais je m'en suis jamais réelement servi. Mes premiers contacts
| > | avec C++ était aussi privé, aux alentours de 1987.
| > Une version que je possédais jusqu'à présent aux alentours de
| > 1990. Je remets ma base de données à jour.
| Note bien alors que mes premiers contacts étaient pûrement
| théoriques, et que je n'avais pas accès à un compilateur C++ à
| l'époque.
| Et en passant, je suis intrigué que tu maintiens une base de données
| sur des personnes comme ça.
Mais *toi* aussi tu en as sur des personnes !
Et tu les utilises tous les jours.
kanze@gabi-soft.fr writes:
| Gabriel Dos Reis <gdr@integrable-solutions.net> wrote in message
| news:<m3smisujwa.fsf@uniton.integrable-solutions.net>...
| [...]
| > | Ça ne concerne que mes activités professionnelles. À titre de
| > | curiosité d'adolescent, j'ai appris l'assembleur 1401 en 1965,
| > | mais je m'en suis jamais réelement servi. Mes premiers contacts
| > | avec C++ était aussi privé, aux alentours de 1987.
| > Une version que je possédais jusqu'à présent aux alentours de
| > 1990. Je remets ma base de données à jour.
| Note bien alors que mes premiers contacts étaient pûrement
| théoriques, et que je n'avais pas accès à un compilateur C++ à
| l'époque.
| Et en passant, je suis intrigué que tu maintiens une base de données
| sur des personnes comme ça.
Mais *toi* aussi tu en as sur des personnes !
Et tu les utilises tous les jours.
writes:
| Gabriel Dos Reis wrote in message
| news:...
| [...]
| > | Ça ne concerne que mes activités professionnelles. À titre de
| > | curiosité d'adolescent, j'ai appris l'assembleur 1401 en 1965,
| > | mais je m'en suis jamais réelement servi. Mes premiers contacts
| > | avec C++ était aussi privé, aux alentours de 1987.
| > Une version que je possédais jusqu'à présent aux alentours de
| > 1990. Je remets ma base de données à jour.
| Note bien alors que mes premiers contacts étaient pûrement
| théoriques, et que je n'avais pas accès à un compilateur C++ à
| l'époque.
| Et en passant, je suis intrigué que tu maintiens une base de données
| sur des personnes comme ça.
Mais *toi* aussi tu en as sur des personnes !
Et tu les utilises tous les jours.
Dans news:,"Michel Michaud" wrote in message
news:<1fZKb.45704$...En fait, si j'avais Ritchie devant moi, je lui demanderais
pourquoi, dans son langage original, on peut écrire v pour &v[0] au
lieu d'exiger & comme pour les fonctions... La solution ANSI me
semble plus uniforme.
En somme, ce que tu veux c'est d'étendre le défaut des tableaux à
des fonctions aussi.
Non, pas du tout. Je préfère l'uniformité, alors j'obligerais plutôt
&v[0]. Mais évidemment, c'est difficile étant donné la définition de
[] !
La motivation pour cette anomalie de comportement avec les tableaux
est due à l'histoire ; voir la spécification de B, et les documents
historiques à http://www.lysator.liu.se/c/. Mais c'est un défaut :
pourquoi est-ce que les tableaux fonctionnent différemment que les
autres types ?
Bien alors, j'aimerais l'uniformité avec les fonctions !
Dans news:d6652001.0401080017.6683d84f@posting.google.com,
"Michel Michaud" <mm@gdzid.com> wrote in message
news:<1fZKb.45704$BA6.990753@news20.bellglobal.com>...
En fait, si j'avais Ritchie devant moi, je lui demanderais
pourquoi, dans son langage original, on peut écrire v pour &v[0] au
lieu d'exiger & comme pour les fonctions... La solution ANSI me
semble plus uniforme.
En somme, ce que tu veux c'est d'étendre le défaut des tableaux à
des fonctions aussi.
Non, pas du tout. Je préfère l'uniformité, alors j'obligerais plutôt
&v[0]. Mais évidemment, c'est difficile étant donné la définition de
[] !
La motivation pour cette anomalie de comportement avec les tableaux
est due à l'histoire ; voir la spécification de B, et les documents
historiques à http://www.lysator.liu.se/c/. Mais c'est un défaut :
pourquoi est-ce que les tableaux fonctionnent différemment que les
autres types ?
Bien alors, j'aimerais l'uniformité avec les fonctions !
Dans news:,"Michel Michaud" wrote in message
news:<1fZKb.45704$...En fait, si j'avais Ritchie devant moi, je lui demanderais
pourquoi, dans son langage original, on peut écrire v pour &v[0] au
lieu d'exiger & comme pour les fonctions... La solution ANSI me
semble plus uniforme.
En somme, ce que tu veux c'est d'étendre le défaut des tableaux à
des fonctions aussi.
Non, pas du tout. Je préfère l'uniformité, alors j'obligerais plutôt
&v[0]. Mais évidemment, c'est difficile étant donné la définition de
[] !
La motivation pour cette anomalie de comportement avec les tableaux
est due à l'histoire ; voir la spécification de B, et les documents
historiques à http://www.lysator.liu.se/c/. Mais c'est un défaut :
pourquoi est-ce que les tableaux fonctionnent différemment que les
autres types ?
Bien alors, j'aimerais l'uniformité avec les fonctions !