Article View: fr.comp.lang.c
Article #15041Re: Insérer une fonctions dans une structure?
From: Emmanuel Delahaye
Date: Sat, 15 Oct 2005 18:02
Date: Sat, 15 Oct 2005 18:02
38 lines
2398 bytes
2398 bytes
frederic@askme.fr a �crit :
> y-a-t'il moyen en C, d'ins�rer une ou des fonctions dans une structure de donn�es?
Non, et ce serait absurde de multiplier le code � chaque instance... Les
principes OO de programmation 'moderne' consistent � ecrire (et
instancier) le code une fois, mais d'instancier les donn�es autant de
fois que l'on veut. Certainement pas d'avoir plusieurs instance du m�me
code. Ce serait inutile et couteux...
> typedef struct Complex Complex;
> struct Complex {
> int value;
> int (*fn)();
Ca, c'est autre chose. C'est un pointeiur sur une fonction dont le code
est 'ailleurs'.
Cette fa�on de proc�der r�pond au principe �nonc� ci-dessus, � savoir
une instance du code pour n instances des donn�es (dont les pointeurs de
fonction pointent toutes sur le m�me code)
> char *mesg;
> };
>
> Lorsque je compile comme �a, le compilo ne cris pas, mais par
> contre, il hurle si j'ai la d�claration suivante:
>
> Complex table[] = {
> ONE, double(ONE), "premier message",
Evidemment. Ici, on ne fait pas d'appel, mais de d�finition de structure
avec initialisation. Seul le nom de la fonctiohn doit �tre utilis�.
ONE, double, "premier message",
etc.
Nota. C'est pas une bonne idd�e d'utiliser 'double' pour un nom de
fonction, vu que c'est le nom d'un type du langage.
Technical Details
Message-ID:
<43514442$0$21272$626a54ce@news.free.fr>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!proxad.net!infeed-4.proxad.net!nnrp3-1.free.fr!not-for-mailReferences:
<87r7amd6qx.fsf@venus.net>Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,d00d98e8032f6fc X-Google-Attributes: gidf9822,public X-Google-Language: FRENCH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!proxad.net!infeed-4.proxad.net!nnrp3-1.free.fr!not-for-mail Date: Sat, 15 Oct 2005 20:02:30 +0200 From: Emmanuel Delahaye <emdelYOURBRA@noos.fr> User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716) X-Accept-Language: fr, en MIME-Version: 1.0 Newsgroups: fr.comp.lang.c Subject: Re: Insérer une fonctions dans une structure? References: <87r7amd6qx.fsf@venus.net> In-Reply-To: <87r7amd6qx.fsf@venus.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Lines: 38 Message-ID: <43514442$0$21272$626a54ce@news.free.fr> Organization: Guest of ProXad - France NNTP-Posting-Date: 15 Oct 2005 20:02:42 MEST NNTP-Posting-Host: 81.65.109.208 X-Trace: 1129399362 nnrp3-1.free.fr 21272 81.65.109.208:19361 X-Complaints-To: abuse@proxad.net