12

Cで演算子(比較の演算子など)をオーバーロードすることは可能ですか?

もしそうなら、どのようにそれをしますか?簡単に検索しましたが、見つけたのはC ++だけで、欲しいのはCです。

誰かアイデアはありますか?

Edit1:アイデアは次のとおりです。構造体があり、(構造体のメンバーに基づいて)比較を行う必要があります。そして、このために、新しい「データ型」と比較して演算子を関連付けたいと思います。

Edit2:演算子のオーバーロードを使用せずに実行できることを完全に認識していますが、オーバーロードを使用してこれを実行できるかどうか疑問に思っていました。

回答:オーバーロードの概念は、オブジェクト指向プログラミングに関連しています。Cはオブジェクト指向ではないため、オーバーロードの概念を含めることはできません。(:

4

3 に答える 3

22

いいえ、できません。Cは、開発者による演算子のオーバーロードをサポートしていません。

于 2012-05-16T18:32:17.513 に答える
7

オーバーロードとは、ユーザー定義の演算子のオーバーロードを意味する場合、答えはノーです。ただし、などの事前定義された演算子の一部は、*算術+型に対してオーバーロードされます(考えてみれば)。*ポインタを逆参照するためのオーバーロードもあるため、これは特別です。

于 2012-05-16T18:33:15.143 に答える
3

C は、演算子または関数のオーバーロードをサポートしていません。<, <=, >, ,>=を再定義したり、構造体型を直接比較し ==たりする方法はありません。!=

于 2012-05-16T19:26:29.563 に答える