1

あるコードを数時間デバッグしたところ!=、コードをスキャンしている間に=. 私は何年も前から常にPascal<>で operator を使用しています。コミュニティがコードを再利用できるようにするには、 Cで記述してデバッグする必要があります。そこで、次のコマンドのように定義しようとしました。<>!=

#define <> !=
#define "<>" "!="

しかし、うまくいきませんでした。Webで検索しようとしましたが、 C++ または C# に関する結果しか見つかりませんでしたが、 Cには必要です。as 不等式演算子を使用して再利用可能なCコードを作成する可能性はありますか? <>(他のnormalユーザーは に自動置換できると思います<>!=、コードは他のシステムでも変更せずに、つまり でコンパイルする必要があります<>)。Linux ( gcc ) を使用しています。

4

5 に答える 5

3

C には演算子のオーバーロードがありません。限目。その機能が必要な場合は、別のプログラミング言語を使用してください。

于 2013-03-29T08:30:39.457 に答える
1

前に述べたように、C には演算子のオーバーロードはありません (C++ でのみ導入されました)。ただし、コンパイル プロセス中に<>置き換えられたファイルを自動的に生成するオプションがまだあります。!=

于 2013-03-29T08:35:17.977 に答える
1

c で演算子をオーバーロードすることはできません。

于 2013-03-29T08:31:13.913 に答える
1

演算子文字はオブジェクトの名前、つまりプリプロセッサ マクロ (あなたの場合)、変数名、関数名では使用できません。
したがって、基本的に、そのようなことはできません。とにかくそれが悪い考えだった理由を見るために私のコメントを見ることができます。

于 2013-03-29T08:38:28.917 に答える
0

プログラムをビルドし、次のいずれかの行が C コードに含まれている場合

#define <> !=
#define "<>" "!="

次に、コンパイル エラーが発生します。

error: macro names must be identifiers

つまり、マクロの名前は文字で始める必要があり、マクロの名前に使用できる特殊文字には制限があります。

次のようなマクロに別の名前を使用できる場合があります。

#define NEQ !=

これは許可されています

于 2013-03-29T09:33:13.713 に答える