Hej, mam problem ze zrozumieniem odwołania się do struktury NCB (Network Control Block). Posłużę się przykładem kodu:
UCHAR reset( NCB *block ) {
block->ncb_command = NCBRESET;
block->ncb_lana_num = 2;
block->ncb_lsn = 0;
block->ncb_num = 0;
Netbios(block);
return block->ncb_retcode;
}
Struktura NCB prezentuje się dla mnie jak pola w normalnej strukturze poza tym później w głównej funkcji nie deklarujemy żadnego wskaźnika na tę strukturę ani też nie alokujemy mu pamięci, po prostu zadeklarowana jest zmienna block typu NCB (NCB block;) i to wszystko. Następnie dane przesyłane są za pomocą & który jak wiadomo pozwala wydobyć adres. Dlaczego tutaj odwołujemy się do tej struktury w taki sposób ?
Struktura NCB poniżej:
typedef struct _NCB {
UCHAR ncb_command;
UCHAR ncb_retcode;
UCHAR ncb_lsn;
UCHAR ncb_num;
PUCHAR ncb_buffer;
WORD ncb_length;
UCHAR ncb_callname[NCBNAMSZ];
UCHAR ncb_name[NCBNAMSZ];
UCHAR ncb_rto;
UCHAR ncb_sto;
void (CALLBACK *ncb_post)( struct *NCB);
UCHAR ncb_lana_num;
UCHAR ncb_cmd_cplt;
UCHAR ncb_reserve[X];
HANDLE ncb_event;
} NCB, *PNCB;