#include <stdio.h>
#define FloatFillStr(x,y) ((*(float *)&y)=x)
#define StrFillFloat(x,y) (y=(*(float *)&x))
int main()
{
char cfdata[4];
float f1,f2;
f1=1.5;
FloatFillStr(f1,cfdata[0]);
StrFillFloat(cfdata[0],f2);
printf("%f\n",f2);
return 0;
}
之所以没有使用共用体是因为有些C\C++语言行业标准中不允许使用共用体类型。