ホームページ >バックエンド開発 >C++ >C で `cout` を使用して関数ポインタを出力するにはどうすればよいですか?

C で `cout` を使用して関数ポインタを出力するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-05 22:31:44194ブラウズ

How Can I Print Function Pointers Using `cout` in C  ?

cout による関数ポインターの出力

C では、 cout は関数ポインターの出力を直接サポートしていません。ただし、特定の演算子オーバーロードを使用すると、関数ポインターを void ポインター (void*) に変換することで実現できます。

演算子<<次のように void ポインターを処理するようにオーバーロードされます:

ostream &amp; operator <<( ostream &amp;, const void * );

このオーバーロードにより、void ポインターを 16 進数形式で出力できます。関数ポインターには、演算子<<の標準ライブラリオーバーロードを含めることはできません。

関数ポインタを cout で直接出力しようとすると、暗黙的に別の型に変換されます。多くの場合、この変換の結果はブール値になりますが、正確な変換規則は実装によって定義されます。

cout を使用して関数ポインターを出力するには、次の手順を実行できます。

  1. 関数ポインターを宣言して初期化します:
int (*pf)();
pf = foo;
  1. 関数をキャストしますvoid ポインターへのポインター:
cout << "cout << (void *)pf is " << (void *)pf << endl;
  1. オーバーロードされた演算子を使用する<< void ポインターを出力するには:
cout << "cout << (void *)pf is " << (void *)pf << endl;

以上がC で `cout` を使用して関数ポインタを出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。