je me pose une question par rapport a la maniere classique de vider le
buffer associe a stdin:
c = getchar();
if (c != \n)
while ( (getchar()) != \n) {
};
Que se passe t-il si stdin ne contient aucun \n? (fichier contenant une
ligne mais aucun \n par exemple). Dans ce cas, il me semble que l'on
pourrait avoir un probleme non?
Comment feriez vous pour resoudre ce probleme? (J'ai bien une petite
idee mais je prefere savoir si c'est la bonne..;) )
Par contre, il m'est arrivé dans un même projet C++ d'utiliser du code C, mais bien évidemment dans des sources différents, en en encadrant les declarations de extern "C"...
Avec des mots-clefs C++-iens ?
Oui, mais encadrés! :
#ifdef __cplusplus extern "C" { #endif
/* des headers C... */
#ifdef __cplusplus } #endif
exemples: http://mapage.noos.fr/emdel/clib.htm
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
drkm wrote on 08/11/04 :
Emmanuel Delahaye <emdel@YOURBRAnoos.fr> writes:
Par contre, il m'est arrivé dans un même projet C++ d'utiliser du code
C, mais bien évidemment dans des sources différents, en en encadrant
les declarations de extern "C"...
Avec des mots-clefs C++-iens ?
Oui, mais encadrés! :
#ifdef __cplusplus
extern "C"
{
#endif
/* des headers C... */
#ifdef __cplusplus
}
#endif
exemples: http://mapage.noos.fr/emdel/clib.htm
--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html
Par contre, il m'est arrivé dans un même projet C++ d'utiliser du code C, mais bien évidemment dans des sources différents, en en encadrant les declarations de extern "C"...
Avec des mots-clefs C++-iens ?
Oui, mais encadrés! :
#ifdef __cplusplus extern "C" { #endif
/* des headers C... */
#ifdef __cplusplus } #endif
exemples: http://mapage.noos.fr/emdel/clib.htm
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
drkm
Emmanuel Delahaye writes:
drkm wrote on 08/11/04 :
Emmanuel Delahaye writes:
Par contre, il m'est arrivé dans un même projet C++ d'utiliser du code C, mais bien évidemment dans des sources différents, en en encadrant les declarations de extern "C"...
Avec des mots-clefs C++-iens ?
Oui, mais encadrés! :
#ifdef __cplusplus extern "C" { #endif
/* des headers C... */
#ifdef __cplusplus } #endif
C'est ce que tu décris ci-dessus. Mais ce ne sont pas les mots-clefs dont nous parlions :
From: Emmanuel Delahaye Subject: Re: Vider le buffer associe a stdin Date: Wed, 03 Nov 2004 22:41:30 +0100
Charlie Gordon wrote on 03/11/04 :
C'est une mauvaise habitude. Il est préférable de s'abstenir utiliser les mots clés du C++ dans du code C aussi : class, private, public, this, new, delete...
Au contraire. C'est un bon moyen d'éviter que du code C se retrouve par erreur compilé en C++, ce qui n'est un giganteste UB.
Je ne dis pas que l'on peut utiliser n'importe quel en-tête C en C++, mais utiliser des mots-clefs tels que ceux ci-dessus ne peut qu'être un embêtement supplémentaire si l'on doit un jour le partager entre le C et le C++.
--drkm
Emmanuel Delahaye <emdel@YOURBRAnoos.fr> writes:
drkm wrote on 08/11/04 :
Emmanuel Delahaye <emdel@YOURBRAnoos.fr> writes:
Par contre, il m'est arrivé dans un même projet C++ d'utiliser du
code C, mais bien évidemment dans des sources différents, en en
encadrant les declarations de extern "C"...
Avec des mots-clefs C++-iens ?
Oui, mais encadrés! :
#ifdef __cplusplus
extern "C"
{
#endif
/* des headers C... */
#ifdef __cplusplus
}
#endif
C'est ce que tu décris ci-dessus. Mais ce ne sont pas les
mots-clefs dont nous parlions :
From: Emmanuel Delahaye <emdel@YOURBRAnoos.fr>
Subject: Re: Vider le buffer associe a stdin
Date: Wed, 03 Nov 2004 22:41:30 +0100
Charlie Gordon wrote on 03/11/04 :
C'est une mauvaise habitude. Il est préférable de s'abstenir
utiliser les mots clés du C++ dans du code C aussi : class, private,
public, this, new, delete...
Au contraire. C'est un bon moyen d'éviter que du code C se retrouve par
erreur compilé en C++, ce qui n'est un giganteste UB.
Je ne dis pas que l'on peut utiliser n'importe quel en-tête C en
C++, mais utiliser des mots-clefs tels que ceux ci-dessus ne peut
qu'être un embêtement supplémentaire si l'on doit un jour le partager
entre le C et le C++.
Par contre, il m'est arrivé dans un même projet C++ d'utiliser du code C, mais bien évidemment dans des sources différents, en en encadrant les declarations de extern "C"...
Avec des mots-clefs C++-iens ?
Oui, mais encadrés! :
#ifdef __cplusplus extern "C" { #endif
/* des headers C... */
#ifdef __cplusplus } #endif
C'est ce que tu décris ci-dessus. Mais ce ne sont pas les mots-clefs dont nous parlions :
From: Emmanuel Delahaye Subject: Re: Vider le buffer associe a stdin Date: Wed, 03 Nov 2004 22:41:30 +0100
Charlie Gordon wrote on 03/11/04 :
C'est une mauvaise habitude. Il est préférable de s'abstenir utiliser les mots clés du C++ dans du code C aussi : class, private, public, this, new, delete...
Au contraire. C'est un bon moyen d'éviter que du code C se retrouve par erreur compilé en C++, ce qui n'est un giganteste UB.
Je ne dis pas que l'on peut utiliser n'importe quel en-tête C en C++, mais utiliser des mots-clefs tels que ceux ci-dessus ne peut qu'être un embêtement supplémentaire si l'on doit un jour le partager entre le C et le C++.
--drkm
Emmanuel Delahaye
drkm wrote on 08/11/04 :
C'est ce que tu décris ci-dessus. Mais ce ne sont pas les mots-clefs dont nous parlions :
From: Emmanuel Delahaye
Charlie Gordon wrote on 03/11/04 :
C'est une mauvaise habitude. Il est préférable de s'abstenir utiliser les mots clés du C++ dans du code C aussi : class, private, public, this, new, delete...
Au contraire. C'est un bon moyen d'éviter que du code C se retrouve par erreur compilé en C++, ce qui n'est un giganteste UB.
Je ne dis pas que l'on peut utiliser n'importe quel en-tête C en C++, mais utiliser des mots-clefs tels que ceux ci-dessus ne peut qu'être un embêtement supplémentaire si l'on doit un jour le partager entre le C et le C++.
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du C. Donc, new, class etc. seraient admis. A vérifier auprès des gens de C++.
Si ce n'est pas le cas, je devrais réviser quelques prototypes qui utilisent 'this'... Dommage...
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
drkm wrote on 08/11/04 :
C'est ce que tu décris ci-dessus. Mais ce ne sont pas les
mots-clefs dont nous parlions :
From: Emmanuel Delahaye <emdel@YOURBRAnoos.fr>
Charlie Gordon wrote on 03/11/04 :
C'est une mauvaise habitude. Il est préférable de s'abstenir
utiliser les mots clés du C++ dans du code C aussi : class, private,
public, this, new, delete...
Au contraire. C'est un bon moyen d'éviter que du code C se retrouve par
erreur compilé en C++, ce qui n'est un giganteste UB.
Je ne dis pas que l'on peut utiliser n'importe quel en-tête C en
C++, mais utiliser des mots-clefs tels que ceux ci-dessus ne peut
qu'être un embêtement supplémentaire si l'on doit un jour le partager
entre le C et le C++.
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que
ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles
du C. Donc, new, class etc. seraient admis. A vérifier auprès des gens
de C++.
Si ce n'est pas le cas, je devrais réviser quelques prototypes qui
utilisent 'this'... Dommage...
--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html
C'est ce que tu décris ci-dessus. Mais ce ne sont pas les mots-clefs dont nous parlions :
From: Emmanuel Delahaye
Charlie Gordon wrote on 03/11/04 :
C'est une mauvaise habitude. Il est préférable de s'abstenir utiliser les mots clés du C++ dans du code C aussi : class, private, public, this, new, delete...
Au contraire. C'est un bon moyen d'éviter que du code C se retrouve par erreur compilé en C++, ce qui n'est un giganteste UB.
Je ne dis pas que l'on peut utiliser n'importe quel en-tête C en C++, mais utiliser des mots-clefs tels que ceux ci-dessus ne peut qu'être un embêtement supplémentaire si l'on doit un jour le partager entre le C et le C++.
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du C. Donc, new, class etc. seraient admis. A vérifier auprès des gens de C++.
Si ce n'est pas le cas, je devrais réviser quelques prototypes qui utilisent 'this'... Dommage...
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
Jean-Marc Bourguet
Emmanuel Delahaye writes:
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du C.
Non. C'est du C++, la seule chose est que la génération de code est compatible avec le C (p.e. le name mangling est celui du C -- ce qui fait qu'une seule fonction extern "C" peut avoir un nom donné par exemple -- les conventions d'appel sont celles du C, ...)
A+
-- Jean-Marc FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Emmanuel Delahaye <emdel@YOURBRAnoos.fr> writes:
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce
qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du
C.
Non. C'est du C++, la seule chose est que la génération de
code est compatible avec le C (p.e. le name mangling est
celui du C -- ce qui fait qu'une seule fonction extern "C"
peut avoir un nom donné par exemple -- les conventions
d'appel sont celles du C, ...)
A+
--
Jean-Marc
FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du C.
Non. C'est du C++, la seule chose est que la génération de code est compatible avec le C (p.e. le name mangling est celui du C -- ce qui fait qu'une seule fonction extern "C" peut avoir un nom donné par exemple -- les conventions d'appel sont celles du C, ...)
A+
-- Jean-Marc FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc Site de usenet-fr: http://www.usenet-fr.news.eu.org
drkm
Emmanuel Delahaye writes:
il me semble que ce qui est extern "C" n'est pas soumis aux lois du C++
Pas pour ce qui est de l'analyse syntaxique. C'est au niveau du code généré. C'est comme cela par exemple que ton linker s'y retrouve.
--drkm
Emmanuel Delahaye <emdel@YOURBRAnoos.fr> writes:
il me semble que
ce qui est extern "C" n'est pas soumis aux lois du C++
Pas pour ce qui est de l'analyse syntaxique. C'est au niveau du
code généré. C'est comme cela par exemple que ton linker s'y
retrouve.
il me semble que ce qui est extern "C" n'est pas soumis aux lois du C++
Pas pour ce qui est de l'analyse syntaxique. C'est au niveau du code généré. C'est comme cela par exemple que ton linker s'y retrouve.
--drkm
Emmanuel Delahaye
Jean-Marc Bourguet wrote on 08/11/04 :
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du C.
Non. C'est du C++, la seule chose est que la génération de code est compatible avec le C (p.e. le name mangling est celui du C -- ce qui fait qu'une seule fonction extern "C" peut avoir un nom donné par exemple -- les conventions d'appel sont celles du C, ...)
M'embête, lui... et mes beaux this alors ?
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
Jean-Marc Bourguet wrote on 08/11/04 :
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce
qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du
C.
Non. C'est du C++, la seule chose est que la génération de
code est compatible avec le C (p.e. le name mangling est
celui du C -- ce qui fait qu'une seule fonction extern "C"
peut avoir un nom donné par exemple -- les conventions
d'appel sont celles du C, ...)
M'embête, lui... et mes beaux this alors ?
--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du C.
Non. C'est du C++, la seule chose est que la génération de code est compatible avec le C (p.e. le name mangling est celui du C -- ce qui fait qu'une seule fonction extern "C" peut avoir un nom donné par exemple -- les conventions d'appel sont celles du C, ...)
M'embête, lui... et mes beaux this alors ?
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
Jean-Marc Bourguet
Emmanuel Delahaye writes:
Jean-Marc Bourguet wrote on 08/11/04 :
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du C.
Non. C'est du C++, la seule chose est que la génération de code est compatible avec le C (p.e. le name mangling est celui du C -- ce qui fait qu'une seule fonction extern "C" peut avoir un nom donné par exemple -- les conventions d'appel sont celles du C, ...)
M'embête, lui... et mes beaux this alors ?
Tu fais comme en SmallTalk, tu utilises self.
A+
-- Jean-Marc FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Emmanuel Delahaye <emdel@YOURBRAnoos.fr> writes:
Jean-Marc Bourguet wrote on 08/11/04 :
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce
qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du
C.
Non. C'est du C++, la seule chose est que la génération de
code est compatible avec le C (p.e. le name mangling est
celui du C -- ce qui fait qu'une seule fonction extern "C"
peut avoir un nom donné par exemple -- les conventions
d'appel sont celles du C, ...)
M'embête, lui... et mes beaux this alors ?
Tu fais comme en SmallTalk, tu utilises self.
A+
--
Jean-Marc
FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du C.
Non. C'est du C++, la seule chose est que la génération de code est compatible avec le C (p.e. le name mangling est celui du C -- ce qui fait qu'une seule fonction extern "C" peut avoir un nom donné par exemple -- les conventions d'appel sont celles du C, ...)
M'embête, lui... et mes beaux this alors ?
Tu fais comme en SmallTalk, tu utilises self.
A+
-- Jean-Marc FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Emmanuel Delahaye
Jean-Marc Bourguet wrote on 08/11/04 :
Emmanuel Delahaye writes:
Jean-Marc Bourguet wrote on 08/11/04 :
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du C.
Non. C'est du C++, la seule chose est que la génération de code est compatible avec le C (p.e. le name mangling est celui du C -- ce qui fait qu'une seule fonction extern "C" peut avoir un nom donné par exemple -- les conventions d'appel sont celles du C, ...)
M'embête, lui... et mes beaux this alors ?
Tu fais comme en SmallTalk, tu utilises self.
Good! C'est pas déposé au moins ?
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
Jean-Marc Bourguet wrote on 08/11/04 :
Emmanuel Delahaye <emdel@YOURBRAnoos.fr> writes:
Jean-Marc Bourguet wrote on 08/11/04 :
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce
qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du
C.
Non. C'est du C++, la seule chose est que la génération de
code est compatible avec le C (p.e. le name mangling est
celui du C -- ce qui fait qu'une seule fonction extern "C"
peut avoir un nom donné par exemple -- les conventions
d'appel sont celles du C, ...)
M'embête, lui... et mes beaux this alors ?
Tu fais comme en SmallTalk, tu utilises self.
Good! C'est pas déposé au moins ?
--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html
Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du C.
Non. C'est du C++, la seule chose est que la génération de code est compatible avec le C (p.e. le name mangling est celui du C -- ce qui fait qu'une seule fonction extern "C" peut avoir un nom donné par exemple -- les conventions d'appel sont celles du C, ...)
M'embête, lui... et mes beaux this alors ?
Tu fais comme en SmallTalk, tu utilises self.
Good! C'est pas déposé au moins ?
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
Gabriel Dos Reis
Emmanuel Delahaye writes:
| drkm wrote on 08/11/04 : | > C'est ce que tu décris ci-dessus. Mais ce ne sont pas les | > mots-clefs dont nous parlions : | > | >> From: Emmanuel Delahaye | >> | >> Charlie Gordon wrote on 03/11/04 : | >> > C'est une mauvaise habitude. Il est préférable de s'abstenir | >> > utiliser les mots clés du C++ dans du code C aussi : class, private, | >> > public, this, new, delete... | >> | >> Au contraire. C'est un bon moyen d'éviter que du code C se | >> retrouve par erreur compilé en C++, ce qui n'est un giganteste | >> UB. | > | > Je ne dis pas que l'on peut utiliser n'importe quel en-tête C en | > C++, mais utiliser des mots-clefs tels que ceux ci-dessus ne peut | > qu'être un embêtement supplémentaire si l'on doit un jour le partager | > entre le C et le C++. | | Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que | ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles | du C.
Effectivement, tu ne connais pas assez le C++ pour l'affirmer. Et le fait que tu aies écris le code sans savoir ce qu'il fait est préoccupant.
« extern "C" » n'est pas un switch pour dire « maintenant, je ne fais que du C et pas du C++ ». Non. « extern "C" » établit juste un une liaison de langage et non un switch. En particulier cela continue à être du C++ -- donc tu peux lever une exception si ton horoscope te le suggère.
| Donc, new, class etc. seraient admis. A vérifier auprès des gens | de C++.
new, class sont permis mais gardent le sens C++ puisque c'est du C++.
| Si ce n'est pas le cas, je devrais réviser quelques prototypes qui | utilisent 'this'... Dommage...
D'ailleurs c'est une absurdité de nommer ses paramètres « this » lorsqu'on met un « extern "C" » (et même dans le cas général)..
-- Gaby Tchéchénie, Irak, Côte d'Ivoire, ...
Emmanuel Delahaye <emdel@YOURBRAnoos.fr> writes:
| drkm wrote on 08/11/04 :
| > C'est ce que tu décris ci-dessus. Mais ce ne sont pas les
| > mots-clefs dont nous parlions :
| >
| >> From: Emmanuel Delahaye <emdel@YOURBRAnoos.fr>
| >>
| >> Charlie Gordon wrote on 03/11/04 :
| >> > C'est une mauvaise habitude. Il est préférable de s'abstenir
| >> > utiliser les mots clés du C++ dans du code C aussi : class, private,
| >> > public, this, new, delete...
| >>
| >> Au contraire. C'est un bon moyen d'éviter que du code C se
| >> retrouve par erreur compilé en C++, ce qui n'est un giganteste
| >> UB.
| >
| > Je ne dis pas que l'on peut utiliser n'importe quel en-tête C en
| > C++, mais utiliser des mots-clefs tels que ceux ci-dessus ne peut
| > qu'être un embêtement supplémentaire si l'on doit un jour le partager
| > entre le C et le C++.
|
| Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que
| ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles
| du C.
Effectivement, tu ne connais pas assez le C++ pour l'affirmer. Et le
fait que tu aies écris le code sans savoir ce qu'il fait est préoccupant.
« extern "C" » n'est pas un switch pour dire « maintenant, je ne fais
que du C et pas du C++ ». Non. « extern "C" » établit juste un une
liaison de langage et non un switch. En particulier cela continue à
être du C++ -- donc tu peux lever une exception si ton horoscope te le
suggère.
| Donc, new, class etc. seraient admis. A vérifier auprès des gens
| de C++.
new, class sont permis mais gardent le sens C++ puisque c'est du C++.
| Si ce n'est pas le cas, je devrais réviser quelques prototypes qui
| utilisent 'this'... Dommage...
D'ailleurs c'est une absurdité de nommer ses paramètres « this »
lorsqu'on met un « extern "C" » (et même dans le cas général)..
| drkm wrote on 08/11/04 : | > C'est ce que tu décris ci-dessus. Mais ce ne sont pas les | > mots-clefs dont nous parlions : | > | >> From: Emmanuel Delahaye | >> | >> Charlie Gordon wrote on 03/11/04 : | >> > C'est une mauvaise habitude. Il est préférable de s'abstenir | >> > utiliser les mots clés du C++ dans du code C aussi : class, private, | >> > public, this, new, delete... | >> | >> Au contraire. C'est un bon moyen d'éviter que du code C se | >> retrouve par erreur compilé en C++, ce qui n'est un giganteste | >> UB. | > | > Je ne dis pas que l'on peut utiliser n'importe quel en-tête C en | > C++, mais utiliser des mots-clefs tels que ceux ci-dessus ne peut | > qu'être un embêtement supplémentaire si l'on doit un jour le partager | > entre le C et le C++. | | Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que | ce qui est extern "C" n'est pas soumis aux lois du C++, mais à celles | du C.
Effectivement, tu ne connais pas assez le C++ pour l'affirmer. Et le fait que tu aies écris le code sans savoir ce qu'il fait est préoccupant.
« extern "C" » n'est pas un switch pour dire « maintenant, je ne fais que du C et pas du C++ ». Non. « extern "C" » établit juste un une liaison de langage et non un switch. En particulier cela continue à être du C++ -- donc tu peux lever une exception si ton horoscope te le suggère.
| Donc, new, class etc. seraient admis. A vérifier auprès des gens | de C++.
new, class sont permis mais gardent le sens C++ puisque c'est du C++.
| Si ce n'est pas le cas, je devrais réviser quelques prototypes qui | utilisent 'this'... Dommage...
D'ailleurs c'est une absurdité de nommer ses paramètres « this » lorsqu'on met un « extern "C" » (et même dans le cas général)..
-- Gaby Tchéchénie, Irak, Côte d'Ivoire, ...
Gabriel Dos Reis
Emmanuel Delahaye writes:
| Jean-Marc Bourguet wrote on 08/11/04 : | >> Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce | >> qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du | >> C. | > | > Non. C'est du C++, la seule chose est que la génération de | > code est compatible avec le C (p.e. le name mangling est | > celui du C -- ce qui fait qu'une seule fonction extern "C" | > peut avoir un nom donné par exemple -- les conventions | > d'appel sont celles du C, ...) | | M'embête, lui... et mes beaux this alors ?
Tu les mets là où je pense ;-)
-- Gaby
Emmanuel Delahaye <emdel@YOURBRAnoos.fr> writes:
| Jean-Marc Bourguet wrote on 08/11/04 :
| >> Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce
| >> qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du
| >> C.
| >
| > Non. C'est du C++, la seule chose est que la génération de
| > code est compatible avec le C (p.e. le name mangling est
| > celui du C -- ce qui fait qu'une seule fonction extern "C"
| > peut avoir un nom donné par exemple -- les conventions
| > d'appel sont celles du C, ...)
|
| M'embête, lui... et mes beaux this alors ?
| Jean-Marc Bourguet wrote on 08/11/04 : | >> Je ne connais pas assez le C++ pour l'affirmer, mais il me semble que ce | >> qui est extern "C" n'est pas soumis aux lois du C++, mais à celles du | >> C. | > | > Non. C'est du C++, la seule chose est que la génération de | > code est compatible avec le C (p.e. le name mangling est | > celui du C -- ce qui fait qu'une seule fonction extern "C" | > peut avoir un nom donné par exemple -- les conventions | > d'appel sont celles du C, ...) | | M'embête, lui... et mes beaux this alors ?