Dlaczego używamy takiej składni dla NCB ?

Dlaczego używamy takiej składni dla NCB ?
TS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Hej, mam problem ze zrozumieniem odwołania się do struktury NCB (Network Control Block). Posłużę się przykładem kodu:

Kopiuj
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:

Kopiuj

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;

szweszwe
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1694
0

A utwórz sobie swoją strukturę i potem wskaźnik do obiektu jej typu. Też się będziesz odwoływał do jej zmiennych i metod za pomocą strzałki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.