で直接操作から構造体のメンバを保護する方法:彼は、プログラマが自分のコードでこのファイルが含まれている場合なぜ私は、我々は.hファイルに次のコードがあるとしましょうC
typedef struct
{
float velocity[2];
float position[2];
float rotation;
} Bullet;
void Bullet_init(Bullet *bullet, float position[2], float velocity[2], float rotation)
{
bullet->rotation = rotation;
bullet->velocity[0] = velocity[0];
bullet->velocity[1] = velocity[1];
bullet->position[0] = position[0];
bullet->position[1] = position[1];
return;
}
をことができませんでしたBullet_init関数を使用する代わりに、単に構造体を直接bullet.velocity [2] = 5で変更しますか?プログラマが関数を適切に使うことを単に信頼する必要はありますか? C++では、メンバー関数でのみ操作できるプライベートメンバーを持つクラスを作成できます。これはCで単純ではありませんそれは重要ですか?
構造体のプロトタイプを公開していない場合、関数を使用して箇条書きの型を操作する必要があります。 – Aif
なぜ、関数Bullet_init()の定義をヘッダファイルに含めるのですか?ヘッダーファイルは宣言用であり、定義用ではありません。 –