• ベストアンサー

関数の定義

度々すみません、教えてください。。。 func(int a,int b,int c,int d); func(int a,int b); func(int a); っていう関数を使いたい場合、関数の定義(宣言?)はどのように書けばよいのですか?エラーになってしまいます・・・。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

「名前が同じでパラメータの数や型が違う関数」ですね C言語では定義できません。 それぞれ別の関数名を付けなければなりません。 C++では使えます。

please-no8
質問者

お礼

そうなんですね、ありがとうございます!

その他の回答 (1)

  • qKAZp
  • ベストアンサー率47% (71/148)
回答No.2

どうも、基本の部分で解ってないような気が・・・ #1>C言語では定義できません。 #1>それぞれ別の関数名を付けなければなりません。 なんですよ。 そもそも、引数の数が違ったら、内の振る舞いが変わってくるわけだから、それぞれが区別つくように違う名前を付けないと混乱してしまうでしょ。使う人もコンパイラも。 引数が1つならfunc1 2つならfunc2 とかさ。 解るようにしないとね。 一番上のだけを使って、内部で処理する手もあるけど、絶対使わない数値を引数なしのフラグに使うことになるから、暗黙の合意に頼ることになってまずい。これのせいで2000年問題になったんだよね。値がポインタ渡しならNULLを入れるって手も使えるけど・・・。

please-no8
質問者

お礼

基本の部分でわかってない?かはわかりませんが、よくわからない問題があったので聞いてみたかったのです。ありがとうございました。

関連するQ&A

専門家に質問してみよう