ホームページ > バックエンド開発 > C++ > 戻り値の型は C 関数シグネチャの一部ですか?

戻り値の型は C 関数シグネチャの一部ですか?

Barbara Streisand
リリース: 2024-12-06 06:07:10
オリジナル
695 人が閲覧しました

Is the Return Type Part of a C   Function Signature?

C の戻り値の型と関数のシグネチャ

C では、関数の戻り値の型は、通常の関数のシグネチャの一部とはみなされません。 、関数テンプレートの特殊化ではない関数を意味します。これは、同じ名前とパラメータの型を持つ関数は、戻り値の型が異なる場合でもオーバーロードできることを意味します。

関数テンプレートの特殊化の署名

ただし、関数の場合テンプレートの特殊化では、戻り値の型が署名に含まれます。これは、関数テンプレートの特殊化の署名には、テンプレート自体の署名に加え、その戻り値の型とテンプレート パラメーターのリストも含まれるためです。

関数の署名の一部ではないのはなぜですか?

戻り値の型が通常の関数の関数シグネチャの一部とみなされない理由は、C 標準では明示されていません。ただし、これは、関数のオーバーロードが主に関数の識別子とパラメーターの型に基づいているためであると推測できます。

オーバーロードが無効な場合

にもかかわらず戻り値の型がシグネチャの一部ではないため、標準では異なる戻り値の型で関数をオーバーロードすることは禁止されています。これは、次のコードは現在の主要なコンパイラではコンパイル エラーになることを意味します。

int f();
double f(); // invalid
ログイン後にコピー

結論

C では、戻り値の型は通常の関数のシグネチャですが、関数テンプレートの特殊化のシグネチャに含まれます。この区別は、関数をオーバーロードする場合や関数テンプレートを使用する場合に理解することが重要です。

以上が戻り値の型は C 関数シグネチャの一部ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート