C : Global Namespace または std:: Namespace での C ヘッダーの使用?
C では、C ヘッダーの使用はマイナーで可能です名前を変更すると、たとえば、stdio.h は cstdio になります。このため、C コードで C 関数を呼び出すときに、std:: 名前空間とグローバル名前空間のどちらの関数を使用することが望ましいかという疑問が生じます。
説明:
C 11 標準によれば、「name.h」形式のすべての C ヘッダー名は、C 標準ライブラリとの互換性を確保するために、グローバル名前空間に自動的に配置されます。ただし、標準では、これらの名前が std:: 名前空間内で最初に宣言または定義されてからグローバル名前空間に挿入されるのか、あるいはその逆なのかは指定されていません。
推奨事項:
標準の推奨事項に基づいて、「cname」ヘッダー (cstdio など) を含め、宣言と使用を優先することが提案されています。次の理由により、std:: 名前空間からの定義が削除されました:
例:
推奨されるアプローチは次のとおりです:
#include <cstdio> int main() { std::printf("Hello world\n"); }
結論:
それまでの間グローバル名前空間または std:: 名前空間のいずれかを使用して C 関数を呼び出すことは可能ですが、C 標準の提案に従い、std:: 名前空間の宣言と定義で cname ヘッダーを使用することを推奨します。
以上がC の C ヘッダー: グローバル名前空間または std:: 名前空間?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。