引数がない関数宣言にはvoidが必要(C学習中)

今日覚えたこと

これはだめで、

int main()

こうするらしい。Javaと違う。

int main(void)
  • scanfで、値を受け取る変数に&を付け忘れると、値が受け取れない。その箇所以外で、変数に代入が行われていないと、変数が初期化されず、Run-Time Check Failure が出る。
  • int型の0が偽、1が真
    • if文の括弧の中は、Javaのように条件文ではない。制御式であり、intで0か1が入る。
  • return 0 と return (0) のどっちを使えばいいのか。何か違いはあるのか。
    • 書くときは統一されていればOK。評価に違いはない。

わからないこと

  • プロトタイプ宣言の詳細
    • 上のURLの説明をまだあまり理解できてない。

何やってる?

新版 明解C言語 中級編』を借りてきたので、写したり、書き換えたり、分からないことを調べたり。基本的な標準関数をもっと把握して、man引きながら読むのから脱したいなぁと。

この本には、以前Haskell読書会のメモで書いた C言語の if〜else ifはif文の入れ子であるという話も載っていました。