next up previous contents
Next: 課題6 Up: 関数の引数、返り値としての構造体 Previous: 参照呼出しの場合   Contents

関数の返り値としての構造体

関数の返り値(リターン値)にも構造体を指定することができる。 例えば次の例では、複素数を表す構造体を定義し、 その四則演算を行う関数を作成したものである


typedef struct _fcomplex{
double x; /* real part */
double y; /* imag part */
} fcomplex;
 
fcomplex cadd(fcomplex a, fcomplex b){
fcomplex c;
c.x = a.x + b.x;
c.y = a.y + b.y;
return(c);
}
 
fcomplex csub(fcomplex a, fcomplex b){
fcomplex c;
c.x = a.x - b.x;
c.y = a.y - b.y;
return(c);
}
 
fcomplex cmulti(fcomplex a, fcomplex b){
fcomplex c;
c.x = a.x * b.x - a.y * b.y;
c.y = a.x * b.y + a.y * b.x;
return(c);
}
 
fcomplex cdiv(fcomplex a, fcomplex b){
fcomplex c;
double blen;
blen = b.x * b.x + b.y * b.y;
c.x = a.x * b.x + a.y * b.y;
c.y = a.y * b.x - a.x * b.y;
c.x /= blen;
c.y /= blen;
return(c);
}



kojima hirohisa
2001-03-05