cstdio stdio.h 名前空間
C では、標準 C ライブラリは std 名前空間内で使用できます。ただし、cstdio や stdio.h などのヘッダーを使用するときによくある誤解が生じます。
cstdio を含めると、シンボル名が std 名前空間にインポートされます。ただし、stdio.h をインクルードすると、シンボル名がグローバル名前空間にインポートされます。これは、cstdio を含む C ヘッダーが、std 名前空間に配置された名前がグローバル名前空間にも配置されているかのように動作するためです。
例:
次のコードstd::printf 関数を使用します。この関数は、std 名前空間内で定義されています:
<code class="cpp">std::printf("hello world"); // Correct</code>
対照的に、次のコードは、グローバル名前空間で定義されている printf 関数を使用します:
<code class="cpp">printf("hello world"); // Correct</code>
cstdio を含めると、std 名前空間で printf 関数が使用可能になる可能性もありますが、これは保証されていないことに注意してください。両方の名前空間での可用性を確保するには、目的の名前空間に対応するヘッダーを使用することをお勧めします。
以上がstdio.h がシンボルをグローバル名前空間にインポートするのに、cstdio はシンボルを std 名前空間にインポートするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。