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