タグ

programmingとエントリに関するoka_Elizabethのブックマーク (1)

  • C: プロトタイプ宣言を忘れると何が起きるか - toyfish.blog

    C 言語でソースを書いて、ビルドして実行して、うまくいった。 ……が、ここで、プロトタイプ宣言なしで後方の関数を呼び出していたことに気づいた。あれ? こういう場合ってエラーになるんじゃないんだっけ? 元ラッパー「yo!」 void quark() { if (roots("dogeza") != 0) { exit(1); } } int roots(char *s) { //... } コンパイルしても、エラーは出ない。実行しても問題なく動く。僕が今回使っている環境では、警告も出なかった。 酸使い「ぼくじゃないよぼくじゃないよ」 原典にあたってないんだけど、いくつかのページを見ると、 プロトタイプ宣言のない関数を呼び出していると、コンパイラはとりあえず「引数は呼び出し元に書いてある通り。戻り値は int」という仮定を行う。 ということらしい。京都大学講師の安田豊さんによる、下記の授業用テ

    C: プロトタイプ宣言を忘れると何が起きるか - toyfish.blog
  • 1