2016-09-22 1 views
1

一部のC++教科書では、printfのようなC関数をstd::printf<stdio.h>ではなく<cstdio>を含む)として使用しています。std名前空間でC関数を使うべきでしょうか?

しかし、Github(プロの開発者が書いたコードを含む)で見たほとんどのC++コードでは、<stdio.h>printfを使用しています。他の読者が混乱する可能性が高いので、正気なプログラマーはprintfまたは有名なC関数名のような名前をつけません。

std::printf以外の文字を入力する以外の利点はないようです。

+4

ちょうど変化するレベルのペダンティックです。 –

+1

'printf()'が他のライブラリに定義されている場合、 'std ::'は 'cstdio'のものを使用していることを示します: – PhotometricStereo

+3

私はこの投稿が少し説明するかもしれないと信じています。 http://stackoverflow.com/questions/10460250/cstdio-stdio-h-namespace – soundslikeodd

答えて

0

C++の名前空間では、C関数と衝突する関数を定義できます。 stdio.hの代わりにcstdioを使用し、std::printfを使用すると、stdioの名前を変更することなく、renameという名前の関数を呼び出すことができます。それは実際には名前空間のためのものです。

+0

C標準ライブラリのすべての名前は、グローバル名前空間に予約されています。 – aschepler

関連する問題