C fuggveny mit csinal?

Nagy Zoltán nagy.zoltan at popkft.hu
Thu Aug 18 17:02:41 CEST 2005


2005. augusztus 18. 15.23 dátummal WLC02E ezt írta:
> Sziasztok,
>
> van egy unsigned char tombom (UartRxFunc) amelynek egy elemebe az
> uartSetRxHandler fuggveny ir be egy függvenyre mutato pointert. Nem
> ertem a koncepciot, a c egy bemeno parametere a fuggvenynek? Miben
> mas ez, mint a void (*rx_func) (unsigned char)
> A lenti kodreszlet nem is fordul le, mi a hiba?
>


> void uartSetRxHandler(unsigned char nUart, void (*rx_func)(unsigned
> char c))

Ez nem is fog, mert typedef-fel létre kell hoznod egy függvény típust és 
azt kell megadnod a függvény paraméterénél:

typedef UartRXFuncType void (*rx_func)(unsigned char c);

void uartSetRxHandler(unsigned char nUart, UartRXFuncType *rx_func)

>  if(nUart < 2)
>  {
>   UartRxFunc[nUart] = rx_func;
>  }
> }
>

Ez jó. Az UartRxFunc tömböd ezekszerint két elemű és mindkét uarthoz 
tárolja a kezelőfüggvény belépési pontját, de a tömböd legyen 
UartRXFuncType típusú:

UartRXFuncType UartRxFunc[2];

-- 
Nagy Zoltán
P.O.P. KFT.




More information about the Elektro mailing list