私はベクトル間の演算を行う必要があるプロジェクトを開始しています。 それは学校のプロジェクトなので、私はすべてを自分で行う必要があります。 私はこの種の構造を持っています。ベクトルでのvector3d(x、y、z)演算を処理する最も良い方法
typedef struct s_vector
{
float x;
float y;
float z;
} t_vector;
ここで、このt_vector間の操作を可能にしたいと考えています。私は私の最初の(そして唯一の)アイデアは、このような関数に対処することです。もちろん
t_vector *addv(t_vector *a, t_vector *b); // do a += b.
私の涅槃は、C++のように「オーバーロード演算子」のようなものですが、私は、これは存在しません知っていますc。
あなたにとって、このような操作をcで処理するにはどうすればよいでしょうか?
あなたの最初のアイデアは私にとってはうれしいです。今度は 'addv'関数を実装します(〜4行のコード)。 –
第3引数を渡して、必要な操作を指定することもできますが、bigint devからは、オペレーションの中には1つのオペランド(例:clear)しか必要ないため、それぞれのオペレーションに対して別々の関数を提供する方が良いことがわかります。両方のオペランドを保持する必要がある場合には、オペランドの1つと同じである可能性があるので、宛先引数を指定する方が良いことがわかります。 –
私は何のエラーもなく、もっと良い方法があるかどうかを知りたかっただけです。この種の実装では、コードが本当に読みにくいので、おかげさまで –