#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++语言行业标准中不允许使用共用体类型。