[解決済み] C++でCの標準関数を使用する場合、"std:: "という接頭辞は必要でしょうか?重複] [重複] [重複] [重複
2022-03-08 15:23:22
質問
C++でC言語の標準的な関数を使用する場合、すべての関数の前に
std::
?
例えば(ファイル名。
std.C
):
#include <cstdio>
int main() {
std::printf("hello\n");
printf("hello\n");
}
このファイルをコンパイルすることができます。
g++ -Wall -Werror -std=c++11 std.C
をエラーなしで実行します。
私の質問は
-
を常に配置する必要があります。
std::
C++で標準Cライブラリ関数を使用する場合、すべての関数の前に置く必要がありますか? -
のようなヘッダーファイルと何が大きく違うのでしょうか?
<stdio.h>
と<cstdio>
?
解決方法は?
<ブロッククオートC++のライブラリは、C言語と同じ定義が含まれています。 ライブラリは、同じ構造のヘッダーファイルで構成されています。 以下のような違いがあります。
-
各ヘッダーファイルは、C言語版と同じ名前ですが、".を付けています。
c
"という接頭辞をつけ、拡張子はつけない。例えば、C++に相当する C言語のヘッダーファイルの場合<stdlib.h>
は<cstdlib>
. -
ライブラリの各要素は
std
名前空間を使用します。
とはいえ、Cとの互換性を保つために、従来のヘッダー名である
name.h
(例えば
stdlib.h
も同じ定義で提供されています。
C++では非推奨ですが、グローバル名前空間内で使用することができます。
( ソース )
は
std::
の部分は
std::printf()
の呼び出しは、標準ライブラリで名前を使用する標準的な方法なので、これを使用することをお勧めします。
関連
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】C++の余分な資格エラー
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み] C++とCの融合 - #ifdef __cplusplus はどのように機能するのか?
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] std::move()とは何ですか?また、どのような場合に使用するのですか?
-
[解決済み] noexceptを本当に使うべきはいつですか?
-
[解決済み】共有オブジェクト(.so)、静的ライブラリ(.a)、DLL(.so)の違い?)
-
[解決済み】C言語でexternキーワードを正しく使用する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】構造体のベクター初期化について
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】C++でユーザー入力を待つ【重複あり
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み] C++でC言語のヘッダーを使う場合、std::とグローバル名前空間のどちらから関数を使うべきでしょうか?