4

この回答は、2 つのアンダースコアの後に大文字を使用してはならないことを示す参考資料を示しています。

次に、この質問に対するこのコメントがあります。最初は@metalによるもので、インクルードガードを作成するときにそのような名前を使用することはできないと言っています。

ただし、新しい C++ ファイルのインクルード ガードを自動的に作成するときに、Xcode が正確にそれを行う理由が知りたいです。

#ifndef __DataSource__File__
#define __DataSource__File__

#include <iostream>

#endif 

これは、Xcode が新しい C++ ファイルの先頭に配置する標準の biolerplate です。この場合、プロジェクトの名前は「DataSource」です。プロジェクトの名前が数字で始まる場合、Xcode はこの数字を 3 番目のアンダースコアに置き換えます。

ユーザーがこれを書くのが違法なら、Xcode がこれを書くのも違法ではないですか?

4

2 に答える 2

4

ユーザーがこれを書くのが違法なら、Xcode がこれを書くのも違法ではないですか?

確かに、「違法」という言葉はかなり強い言葉かもしれませんが。それがデフォルトの動作である場合、危険なインクルードガードを生成するように構成した人は誰でも、それを行うべきではないことを知りませんでした. 残念ながら、すべてのソフトウェア開発者 (開発ツールを作成している場合でも) が、使用する言語とツールについて完全な知識を持っているわけではありません。

非常に多くの人がインクルード ガードをアンダースコアの奇妙なパターンで装飾することを好みますが、そうすべきではありません。おそらく、彼らはそれが標準ライブラリのヘッダーで行われているのを見て (そのような名前が予約されているため、そうあるべきです)、何らかの理由で同じことを行うべきだと思い込んでいます。

于 2013-04-25T01:28:57.053 に答える