联合体:成员共享内存,所有成员的初始地址相同,且一个联合体一次只能初始化一个成员。
巧用:
typedef union REG_GMRF_FEATURE
{
double RfByArray[1];
struct tagRFByName
{
double COR1;//四个相关度特征
double COR2;
double COR3;
double COR4;
double MEAN;//局部均值特征
double NOISE;//噪声特征
}RfByName;
}Reg_GMRF_Feature;
对结构体中所有成员赋值的时候可不用一一指出每个成员,通过联合体直接对地址进行操作,前提是其中成员的变量类型相同。如下所示:
Reg_GMRF_Feature GMRFfeature;
对GMRFfeature中的结构体成员进行赋值,RfByArray[0]的存在就是为了找到初始地址。
for(j=0; j*<*siziof(REG_GMRF_FEATURE)/sizeof(double); j++)
{
GMRFfeature.RfByArray[j]+= feature[j][ToSIndex(x, y)];
}