🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #15041

Re: Insérer une fonctions dans une structure?

#15041
From: Emmanuel Delahaye
Date: Sat, 15 Oct 2005 18:02
38 lines
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-mail
References: <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