typedefで定義された構造を含む入力があります。後でこれらを使用して、メイン関数の変数を初期化します。
例えば:
typedef struct {
int numer;
int denom;
} Rational;
int main()
{
Rational half, *newf = malloc(sizeof(Rational));
half = (Rational){ 1, 2 };
*newf = (Rational){ 2, 3 };
}
これが私がしたいことです:私は2つの初期化ラインを関数呼び出しに変換したいと思います。
例えば:
half = (Rational){ 1, 2 };
次のようになります。
init_Rational( &half, 1, 2 );
と
*newf = (Rational){ 2, 3 };
に変わる必要があります
init_Rational( newf, 2, 3 );
秘訣は、Rationalが以前に構造体として定義されたことを思い出し、初期化を関数呼び出しに置き換えることです。Rationalと呼ばれる必要はなく、任意の名前にすることができます。
宣言がstructtypedefであることを認識すると、上記のように次のように実行する必要があります。
振り向く:
something = (someStructName){ data1, data2, data3.. };
の中へ
init_someStructName( &something, data1, data2, data3.. );
またはポインタの場合...ターン:
*something = (someStructName){ data1, data2, data3.. };
の中へ
init_someStructName( something, data1, data2, data3.. );
誰かがここで私を助けてくれますか?ありがとう!