C 言語で関数オーバーロードを実現する方法
C言語では、関数のオーバーロードを直接サポートする機能はありません。関数のオーバーロードはオブジェクト指向の機能(C++など)であり、同じ名前の関数を定義し、
引数リストのみが異なる複数の同じ名前の関数
C言語では、関数オーバーロードは以下のようにシミュレートできます。
別々の関数名を使用:addとsubtractなど機能ごとに異なる関数名を使用する
ネイティブの日本語で自由にすれば、1つしか選択肢は必要ありません: “`
int add(int a, int b) {
a + bを返す
ネイティブの日本語で言い換えると、
int subtract(int a, int b) {
a – b を返す;
どの程度の速さで新しく発明品が市場に出るか、考えてみてください。
ネイティブな日本語でこの文を言い換えてください。
パラメーターの型で区別する方法: C言語では、関数の名前は同じでもパラメーターの型が異なる場合は有効です。パラメーターの型で関数を区別することができます。
例えば
ネイティブな日本語になおす1つの方法:
int add_int(int a, int b) {
a + b を返す
彼はグループのリーダーに任命された。
float add_float(float a, float b) {
a + b を返す;
どら焼き
日本人は本当に勤勉ですね。
引数の数で区別する: 引数の型で区別するのと同じように、引数の数によって関数を区別できます。たとえば、
ネイティブに日本語で言い換えてください、1つのオプションのみ必要です。
int add_two(int a, int b) {
a + b を返す
彼女は3歳の頃からバレエを習っています。
int add_three(int a, int b, int c) {
a + b + c を返す;
コーヒーを飲むことは、リラックスするのに役立ちます。
それを建設するための資金が十分ではありませんでした。
なお、C言語では関数名は一意でなければならないため、この模倣的な関数のオーバーロードの方法は、関数オーバーロードをサポートする言語の場合ほど柔軟ではありません。
そのため、異なる関数を識別するために適切なファンクション名を、もしくは、引数型/個数を手動で選択する必要があります。