自分のレベルですと以下のようなプログラムを書いています。
もちろんコンパイルは通っていません。色々なミスを含め指摘・訂正をお願いします。
struct number{
int x,y,z;
};

struct number sum(struct number,struct number);//プロトタイプ宣言

struct number sum(struct number,struct number){
struct number sum;
sum.x = ?;
sum.y = ?;
sum.z = ?;
return sum;
}
//↑の自作関数の部分で引数が、同じ構造体を2つ使う場合の引数の設定の仕方がよくわかりません。
//構造体を名前を入れるとダブってしまいます。