Salut,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
Salut,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
Salut,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
Salut,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
Salut,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
Salut,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
Salut,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
Salut,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
Salut,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
Salut,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
A bientôt.
Salut,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
A bientôt.
Salut,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
A bientôt.
Le 18-12-2009, ? propos de
Drole de main(),
David Remacle ?crivait dans fr.comp.lang.c :Salut,
Bonsoir,En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
C'est à ça qu'on voit si on a affaire à un dinosaure avec des
écailles ou à un petit jeune ;-)
C'est du C K&R (comprendre pré ANSI) avec les déclarations de
fonction telles que Dieu les a crées (euh, pardon, ça, c'est pour
les boucles en TeX, mais l'idée est la même ;-) ).
Cordialement,
JKB
Le 18-12-2009, ? propos de
Drole de main(),
David Remacle ?crivait dans fr.comp.lang.c :
Salut,
Bonsoir,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
C'est à ça qu'on voit si on a affaire à un dinosaure avec des
écailles ou à un petit jeune ;-)
C'est du C K&R (comprendre pré ANSI) avec les déclarations de
fonction telles que Dieu les a crées (euh, pardon, ça, c'est pour
les boucles en TeX, mais l'idée est la même ;-) ).
Cordialement,
JKB
Le 18-12-2009, ? propos de
Drole de main(),
David Remacle ?crivait dans fr.comp.lang.c :Salut,
Bonsoir,En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
C'est à ça qu'on voit si on a affaire à un dinosaure avec des
écailles ou à un petit jeune ;-)
C'est du C K&R (comprendre pré ANSI) avec les déclarations de
fonction telles que Dieu les a crées (euh, pardon, ça, c'est pour
les boucles en TeX, mais l'idée est la même ;-) ).
Cordialement,
JKB
In article ,
JKB wrote:Le 18-12-2009, ? propos de
Drole de main(),
David Remacle ?crivait dans fr.comp.lang.c :Salut,
Bonsoir,En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
C'est à ça qu'on voit si on a affaire à un dinosaure avec des
écailles ou à un petit jeune ;-)
C'est du C K&R (comprendre pré ANSI) avec les déclarations de
fonction telles que Dieu les a crées (euh, pardon, ça, c'est pour
les boucles en TeX, mais l'idée est la même ;-) ).
Cordialement,
JKB
Juste pour completer, les declarations de fonction en question sont encore
valides en C ISO, que ce soit 89 ou 99, precisement pour comptabilite avec
le vieux code. Elles commencent a etre fortement depreciees (ca se traduit
comment deprecated) avec une nette envie du comite de les virer.
Le "passage au C ISO" n'est aucunement automatique, il ne suffit PAS de
prendre la declaration ancienne mode et de rajouter les types. Avec des
declarations K&R, on n'a pas de prototypes, et les conventions d'appels
sont differentes. Par exemples, les char sont etendues en int pour l'appel.
Ce qui fait que la definition suivante:
f(a)
char a;
{
/* faire quelque chose avec a */
}
se traduira le plus souvent en
void /* pas de type de retour, c'est int formellement, mais on s'en
* servait pour les fonctions ne renvoyant rien d'utile avant
* l'existence de void */
f(int a)
{
char b = a;
/* faire quelque chose avec b */
}
oui, c'est sacrement tordu, et ca a piege plus d'un programmeur confirme...
In article <slrnhinauc.954.knatschke@rayleigh.systella.fr>,
JKB <wilhelm-siegfried.knatschke-koenigsberg@chezmoi.com> wrote:
Le 18-12-2009, ? propos de
Drole de main(),
David Remacle ?crivait dans fr.comp.lang.c :
Salut,
Bonsoir,
En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
C'est à ça qu'on voit si on a affaire à un dinosaure avec des
écailles ou à un petit jeune ;-)
C'est du C K&R (comprendre pré ANSI) avec les déclarations de
fonction telles que Dieu les a crées (euh, pardon, ça, c'est pour
les boucles en TeX, mais l'idée est la même ;-) ).
Cordialement,
JKB
Juste pour completer, les declarations de fonction en question sont encore
valides en C ISO, que ce soit 89 ou 99, precisement pour comptabilite avec
le vieux code. Elles commencent a etre fortement depreciees (ca se traduit
comment deprecated) avec une nette envie du comite de les virer.
Le "passage au C ISO" n'est aucunement automatique, il ne suffit PAS de
prendre la declaration ancienne mode et de rajouter les types. Avec des
declarations K&R, on n'a pas de prototypes, et les conventions d'appels
sont differentes. Par exemples, les char sont etendues en int pour l'appel.
Ce qui fait que la definition suivante:
f(a)
char a;
{
/* faire quelque chose avec a */
}
se traduira le plus souvent en
void /* pas de type de retour, c'est int formellement, mais on s'en
* servait pour les fonctions ne renvoyant rien d'utile avant
* l'existence de void */
f(int a)
{
char b = a;
/* faire quelque chose avec b */
}
oui, c'est sacrement tordu, et ca a piege plus d'un programmeur confirme...
In article ,
JKB wrote:Le 18-12-2009, ? propos de
Drole de main(),
David Remacle ?crivait dans fr.comp.lang.c :Salut,
Bonsoir,En me documentant pour un petit historique des Os d'Apple, je suis tombé
sur une image de A/UX (l'un des premier Unix d'Apple) avec un drole de
façon de déclarer main.
http://www.kernelthread.com/publications/appleoshistory/images/aux.gif
J'ai bien sur essayé de voir dans mon codeblocks si ca compile. et oui
ça compile mais tout de même je me pose des questions sur cette façon de
présenter main.
C'est à ça qu'on voit si on a affaire à un dinosaure avec des
écailles ou à un petit jeune ;-)
C'est du C K&R (comprendre pré ANSI) avec les déclarations de
fonction telles que Dieu les a crées (euh, pardon, ça, c'est pour
les boucles en TeX, mais l'idée est la même ;-) ).
Cordialement,
JKB
Juste pour completer, les declarations de fonction en question sont encore
valides en C ISO, que ce soit 89 ou 99, precisement pour comptabilite avec
le vieux code. Elles commencent a etre fortement depreciees (ca se traduit
comment deprecated) avec une nette envie du comite de les virer.
Le "passage au C ISO" n'est aucunement automatique, il ne suffit PAS de
prendre la declaration ancienne mode et de rajouter les types. Avec des
declarations K&R, on n'a pas de prototypes, et les conventions d'appels
sont differentes. Par exemples, les char sont etendues en int pour l'appel.
Ce qui fait que la definition suivante:
f(a)
char a;
{
/* faire quelque chose avec a */
}
se traduira le plus souvent en
void /* pas de type de retour, c'est int formellement, mais on s'en
* servait pour les fonctions ne renvoyant rien d'utile avant
* l'existence de void */
f(int a)
{
char b = a;
/* faire quelque chose avec b */
}
oui, c'est sacrement tordu, et ca a piege plus d'un programmeur confirme...
In article ,
JKB wrote:
Elles commencent a etre fortement
depreciees (ca se traduit comment deprecated) ...
In article <slrnhinauc.954.knatschke@rayleigh.systella.fr>,
JKB <wilhelm-siegfried.knatschke-koenigsberg@chezmoi.com> wrote:
Elles commencent a etre fortement
depreciees (ca se traduit comment deprecated) ...
In article ,
JKB wrote:
Elles commencent a etre fortement
depreciees (ca se traduit comment deprecated) ...
f(a)
char a;
{
/* faire quelque chose avec a */
}
se traduira le plus souvent en
void /* pas de type de retour, c'est int formellement, mais on s'en
* servait pour les fonctions ne renvoyant rien d'utile avant
* l'existence de void */
f(int a)
{
char b = a;
/* faire quelque chose avec b */
}
oui, c'est sacrement tordu, et ca a piege plus d'un programmeur confirme...
f(a)
char a;
{
/* faire quelque chose avec a */
}
se traduira le plus souvent en
void /* pas de type de retour, c'est int formellement, mais on s'en
* servait pour les fonctions ne renvoyant rien d'utile avant
* l'existence de void */
f(int a)
{
char b = a;
/* faire quelque chose avec b */
}
oui, c'est sacrement tordu, et ca a piege plus d'un programmeur confirme...
f(a)
char a;
{
/* faire quelque chose avec a */
}
se traduira le plus souvent en
void /* pas de type de retour, c'est int formellement, mais on s'en
* servait pour les fonctions ne renvoyant rien d'utile avant
* l'existence de void */
f(int a)
{
char b = a;
/* faire quelque chose avec b */
}
oui, c'est sacrement tordu, et ca a piege plus d'un programmeur confirme...
En fait j'ai du mal à voir le problème: les paramètres sont alignés sur
la pile sur la taille d'un int. C'est pas tellement différent des ABI
actuelles ou les params sont passés dans des registres.
Peux tu préciser en quoi c'est piégeux? J'avoue ne pas suivre ici. Tu
veux dire que les conventions ABI sont différentes entre K&R et ANSI?
En fait j'ai du mal à voir le problème: les paramètres sont alignés sur
la pile sur la taille d'un int. C'est pas tellement différent des ABI
actuelles ou les params sont passés dans des registres.
Peux tu préciser en quoi c'est piégeux? J'avoue ne pas suivre ici. Tu
veux dire que les conventions ABI sont différentes entre K&R et ANSI?
En fait j'ai du mal à voir le problème: les paramètres sont alignés sur
la pile sur la taille d'un int. C'est pas tellement différent des ABI
actuelles ou les params sont passés dans des registres.
Peux tu préciser en quoi c'est piégeux? J'avoue ne pas suivre ici. Tu
veux dire que les conventions ABI sont différentes entre K&R et ANSI?
In article <4b2c0029$0$14550$,
Samuel Devulder wrote:En fait j'ai du mal à voir le problème: les paramètres sont alignés sur
la pile sur la taille d'un int. C'est pas tellement différent des ABI
actuelles ou les params sont passés dans des registres.
Certains parametres dans certaines conditions. Pas toutes les ABI.Peux tu préciser en quoi c'est piégeux? J'avoue ne pas suivre ici. Tu
veux dire que les conventions ABI sont différentes entre K&R et ANSI?
Ben oui, les conventions sont differentes. En particulier, le compilo, s'il
a un prototype, peut optimiser les choses. Si tu passes plein de char a une
fonction, avec un prototype, le compilo peut tres bien te les coller sur la
pile serres les uns contre les autres, alors qu'avec l'ancienne declaration
il sera force de les etendre en int.
Si tu ne vois pas le probleme, c'est juste que tu n'as pas regarde assez loin.
Je ne te parle pas d'une fonction, mais d'un programme entier, censement
portable, ou tu vas convertir plusieurs centaines de fonctions d'un monde
a l'autre. Si tu le fais a la main, tu as de fortes chances de te planter sur
au moins quelques-unes. Et comme Murphy est toujours avec nous, tu es a peu
pres certain que ca va marcher sur ta machine courante, mais pas sur une
autre. Cas vecu: i386, amd64, ppc. Et paf le ppc.
In article <4b2c0029$0$14550$426a74cc@news.free.fr>,
Samuel Devulder <samuel-dot-devulder@geensys.com> wrote:
En fait j'ai du mal à voir le problème: les paramètres sont alignés sur
la pile sur la taille d'un int. C'est pas tellement différent des ABI
actuelles ou les params sont passés dans des registres.
Certains parametres dans certaines conditions. Pas toutes les ABI.
Peux tu préciser en quoi c'est piégeux? J'avoue ne pas suivre ici. Tu
veux dire que les conventions ABI sont différentes entre K&R et ANSI?
Ben oui, les conventions sont differentes. En particulier, le compilo, s'il
a un prototype, peut optimiser les choses. Si tu passes plein de char a une
fonction, avec un prototype, le compilo peut tres bien te les coller sur la
pile serres les uns contre les autres, alors qu'avec l'ancienne declaration
il sera force de les etendre en int.
Si tu ne vois pas le probleme, c'est juste que tu n'as pas regarde assez loin.
Je ne te parle pas d'une fonction, mais d'un programme entier, censement
portable, ou tu vas convertir plusieurs centaines de fonctions d'un monde
a l'autre. Si tu le fais a la main, tu as de fortes chances de te planter sur
au moins quelques-unes. Et comme Murphy est toujours avec nous, tu es a peu
pres certain que ca va marcher sur ta machine courante, mais pas sur une
autre. Cas vecu: i386, amd64, ppc. Et paf le ppc.
In article <4b2c0029$0$14550$,
Samuel Devulder wrote:En fait j'ai du mal à voir le problème: les paramètres sont alignés sur
la pile sur la taille d'un int. C'est pas tellement différent des ABI
actuelles ou les params sont passés dans des registres.
Certains parametres dans certaines conditions. Pas toutes les ABI.Peux tu préciser en quoi c'est piégeux? J'avoue ne pas suivre ici. Tu
veux dire que les conventions ABI sont différentes entre K&R et ANSI?
Ben oui, les conventions sont differentes. En particulier, le compilo, s'il
a un prototype, peut optimiser les choses. Si tu passes plein de char a une
fonction, avec un prototype, le compilo peut tres bien te les coller sur la
pile serres les uns contre les autres, alors qu'avec l'ancienne declaration
il sera force de les etendre en int.
Si tu ne vois pas le probleme, c'est juste que tu n'as pas regarde assez loin.
Je ne te parle pas d'une fonction, mais d'un programme entier, censement
portable, ou tu vas convertir plusieurs centaines de fonctions d'un monde
a l'autre. Si tu le fais a la main, tu as de fortes chances de te planter sur
au moins quelques-unes. Et comme Murphy est toujours avec nous, tu es a peu
pres certain que ca va marcher sur ta machine courante, mais pas sur une
autre. Cas vecu: i386, amd64, ppc. Et paf le ppc.