6

この質問は、バイナリANDとaddress-ofの両方として使用することを考えさせられたCでの&&&操作とは何かに対する回答です。&

これらの非常に異なるタスクの両方に同じ記号が使用されているのはなぜですか?それについて考えるとき@、address-ofのより良いシンボルであるように思われるでしょう。

コンパイラはおそらくほとんどの誤った使用法を捕らえるので、実際には多くの問題を引き起こすとは思わないが、バイナリを実行しているように見え、実際にアドレスを実行している間にマクロを含むコードを作成することはおそらく可能だろう。 。

4

2 に答える 2

7

2つの異なる目的で使用される大きな理由はないと思います。

幸いなことに、一方の使用法は単項演算子であり、もう一方の使用法は二項演算子(つまり、2つのオペランドがある)であるため、言語にあいまいさはありません。*の同上(乗算または逆参照)。

于 2012-12-20T09:12:27.170 に答える
7

「のアドレス」に使用されなかった理由@は(あなたが提案したように)、その文字はCの初期に実際に使用されていたISO646文字セットの一部ではなかったためです。

Cの設計者がそれのためにトリグラフシーケンスを使用して設計できたのは事実ですが、彼らはそれが本当に面倒な価値がないと感じたのではないかと思います。人々のコードに現れる可能性@があるという事実は、おそらく、別の演算子記号を選択するのに十分な理由とは見なされていませんでした。&&&

于 2012-12-20T09:32:08.193 に答える