とりあえずエンディアン変換でも書いてみる。Union編

あんまりUnion使った変換好きじゃないけど、
ポインタ使ったパターンをど忘れしたためとりあえず。

 
union d_convert_c {
double eight_byte;
char one_byte[8]
}

double endianness(const double* base)
{
/* とりあえず宣言 */
d_convert_c temp1, temp2;
int i = 0;
/* 初期化とやら */
temp1.eight_byte = *base;
temp2.eight_byte = 0;
/* 変換 */
for(i = 0; i < 8; i++){
/* またマジックナンバー_| ̄|○!||!| */
temp2.one_byte[7 - i] = temp1.one_byte[i];
}

return temp2.eight_byte;
}

なにこのゴミコード