C での C ヘッダーの使用: 名前空間またはグローバル スコープ?
C では、ヘッダー ファイルを変更することで C の関数とヘッダーにアクセスできます。名前 (例: stdio.h から cstdio、stdlib.h から cstdlib)。ただし、C コードのこれらのヘッダーに std:: 名前空間の関数を使用するか、グローバル名前空間の関数を使用するかという問題が生じます。
C の名前空間とグローバル スコープ
C 11 標準によれば、「.h」拡張子を持つすべての C ヘッダーは、その名前がグローバル名前空間と名前空間 std の両方に配置されているかのように動作します。これらの名前が最初に std:: 名前空間で宣言されてグローバル名前空間に挿入されるか、その逆かは未指定のままです。
推奨アプローチ
将来のバージョンとの互換性を確保するためC リビジョンを変更し、潜在的なあいまいさを取り除くには、「cname」ヘッダーを使用し、std:: 名前空間内で関数を宣言および定義することをお勧めします。古い「.h」ヘッダーの使用は非推奨であり、今後のリビジョンで削除される予定です。
サンプル コード
次のコード スニペットを推奨します:
#include <cstdio> int main() { std::printf("Hello world\n"); }
以上:
#include <stdio.h> int main() { printf("Hello world\n"); }
結論
C の C 関数とヘッダーには std:: とグローバル名前空間の両方を使用できますが、推奨されるアプローチは、将来の C リビジョンとの一貫性を確保し、潜在的な問題を回避するために、「cname」ヘッダーを組み込み、std:: 名前空間の宣言と定義を使用することです。
以上がC の関数とヘッダーは、C の `std::` 名前空間またはグローバル名前空間から使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。