[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