ホームページ >バックエンド開発 >C++ >なぜ ` ではないのですか

なぜ ` ではないのですか

Barbara Streisand
Barbara Streisandオリジナル
2024-12-26 21:20:11817ブラウズ

Why Doesn't the `

<< を使用した関数ポインタの出力演算子

<< を使用して関数ポインタを出力しようとしたとき演算子を使用すると、予期しない結果が発生する可能性があります。関数ポインタを void* に変換し、%p 形式で printf 関数を使用すると、目的の値が正常に出力されます。

<< による関数ポインタの解釈演算子

<< の動作int (*)() 関数ポインターを持つ演算子は予期せぬものです。この場合、ポインターは C 標準のポインターのブール変換ルールで定義されているように、ブール値に変換されます。

void*

の場合の出力動作void* 型は << に渡されます。演算子を使用すると、ポインターの内容が 16 進形式で出力されます。これは、<< のオーバーロードされたバージョンが原因です。 void ポインター専用に設計された演算子。

メンバー関数ポインターの観察

メンバー関数ポインターは、<< を使用して直接出力することはできません。演算子は複雑な構造のため、メンバー関数ポインターの内容を確認するには、別のメソッドを使用する必要があります。

以上がなぜ ` ではないのですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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