争い(名前の符号化)の機能は何ですか?

 

争い(名前の符号化)の機能は何ですか?

 

 

関数の争い:異なるパラメータ(の関数と同じ名前オーバーロードされた関数)、C ++、それらを区別するためにどのように基礎となる、それがにある機能の名称変更「の中国語の翻訳で、争い、」(苦い難しい表現)も定期的にではなく、カジュアルな名前に改名詳細は、以下を参照してください。


 

 

関数のオーバーロード:同じスコープ内の複数の機能、異なるパラメータリストと同じ名前を持ちます。

リターンの異なるタイプのみのオーバーロードに基づいて実装することはできません。戻り値は、関数のシグネチャには影響を与えません。

原則の基礎となるのオーバーロードC ++関数は、C ++の名前マングル(争い)技術の使用は、関数名、異なるパラメータを区別するために同じ名前の関数の名前を変更することです。

コンパイラ関数名と多重定義関数の種類を識別することによって、そのパラメータ。(専門コーディング、プロセスと呼ばれることもある「マングル名」(名前をマングル)または「名前の符号化」の各機能識別子のパラメータとパラメータ・タイプの数のコンパイラ、接続の種類(タイプセーフリンケージ)の安全性を確保するために名前の装飾)。プログラムは一貫性を確保するため、適切な多重定義関数とパラメータ渡しコールすることの安全な接続のタイプ。コンパイラは、接続エラーを検出し、報告することができます。

objdump -tシンボルテーブルをチェック

 

 


 

 

 

 名前マングリングは、関数名に変換しました

 
 
 
 

参考ます。https://www.jianshu.com/p/f17aa6ecb3a3


おすすめ

転載: www.cnblogs.com/tsingke/p/12114436.html