[elektro] C typedef kérdés

Andras Tantos andras at tantosonline.com
Fri Apr 25 02:31:34 CEST 2008


Csak egy aprosag:

A CondFunc AlrCond(int,int*) definicio egy (CondFunc tipusu) 
fuggveny-pointert visszaado fuggvenyt definial. A typedef 
(CondFunc)(int , int*); meg ha le is fordul, nem igazan szep, mert nem 
definialja a visszateresi erteket (ami a C szerint default int, de a C++ 
szerint mar hiba). Tehat szepen:

typedef  int (CondFunc)(int , int*);

es

int AlrCond(int i, int * p) {
	....
	return 3;
}

Udv,
Tantos Andras

Palasik Sandor wrote:
> A typedefben csak dekorációnak vannak a paraméternevek, de a függvényhez
> kellenek, azaz a typedefből csak ennyit "használ" :
> 
> typedef  (CondFunc)(int , int*);
> 
> A változóneveket csak azért lehet beírni, hogy egyszerűen lehessen a
> függvény fejlécéből deklarációt csinálni a rámutató pointerhez.
> 
>> CondFunc AlrCond ;
>> függvény hivatkozást simán elfogadja.
> 
> Igen, mert ez csak annyit állít, hogy van egy ilyen nevű függvény ilyen
> típusú paraméterekkel. A név szintén dekoráció. Ha meg is adod, nem
> ellenőrzi, hogy ugyanazokat a neveket használod-e a definícióban is.
> 
> Tehát teljesen legális pl:
> 
> int x(int ez);
> 
> int x(int az)
> {
>     return az;
> }
> 
>> CondFunc AlrCond(int i, int*p)
>> {};
>> már hibátlanul fordítja.
> 
> Ide és csak ide már valóban kellenek a nevek. Mondjuk a pontosvessző viszont 
> nem kell.
> 
> Palasik Sándor
> 
> -----------------------------------------
>           elektro[-flame|-etc]



More information about the Elektro mailing list