结构体变量是不能直接做形参的,但是可以把全部成员逐个传送,不过这种方式会使传送的时间和空间开销很大,严重地降低了程序的效率。因此最好的办法就是使用指针。这时由实参传向形参的只是地址,从而减少了时间和空间的开销。
//结构体: typedef struct { unsigned char EgfVer; unsigned short EgfWidth; unsigned short EgfHeight; }EGUI_EGF_Information;
//功能函数 void EGUI_EGF_GetInfo(char *Filename,EGUI_EGF_Information *EGUI_EGF_Info) { unsigned char ReadBuf[16]; unsigned int Len; unsigned short EW,EH; //... ... ... EGUI_EGF_Info->EgfVer=ReadBuf[3]; EGUI_EGF_Info->EgfWidth=EW; EGUI_EGF_Info->EgfHeight=EH; }
//调用函数 void MB_Boot(void) { EGUI_EGF_Information EGUI_EGF_Info; EGUI_EGF_GetInfo("1:03.egf",&EGUI_EGF_Info); }