• ベストアンサー

引数について(C言語)

あるサイトでこんなソースを見たのですが、 void func(val) int val; { /*処理*/ } この引数の記述方法はどうなっているのでしょうか?回答よろしくお願いします。

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

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.5

> てっきり同義だと思っていました。 > 後学のため、両者の意味の違いを教えていただけますか? 一括形式は関数原型を含みますが、分離形式では関数原型がありません。 そのため、 void func(val) int val; { } int main(void) {  func(1, 2, 3);  return 0; } のようなことやってもエラーになりません。

noname#113783
質問者

お礼

プロトタイプの有り無しですか。 分離形式と一括形式のアセンブリソースを見比べてもLINEのコメント以外同じだったので、ん?と思ったのですが、そういうことだったんですね。

その他の回答 (4)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.4

>#3さん >同義ではありません。 てっきり同義だと思っていました。 後学のため、両者の意味の違いを教えていただけますか?

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

「分離形式」という書き方です。 ちなみに、 void func(val) int val; { } と void func(int val) { } は同義ではありません。

noname#113783
質問者

お礼

同義ではないんですね。 回答ありがとうございました。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

ずっと以前の言語規格では、そういう書き方しかできませんでした。 今は、普通そういう書き方はしません。

noname#113783
質問者

お礼

昔の書き方なんですね。 回答ありがとうございました。

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

どうなっているとはどういう意味でしょう? void func(val) int val; { は void func(int val) { と同義です。

noname#113783
質問者

お礼

回答ありがとうございました。

関連するQ&A