- list0602:コンパイラからのメッセージ。
list0602.c: In function ‘main’:
list0602.c:10: warning: implicit declaration of function ‘sqr’
list0602.c:10: warning: format ‘%.3f’ expects type ‘double’, but argument 2 has type ‘int’
list0602.c: At top level:
list0602.c:16: error: conflicting types for ‘sqr’
list0602.c:10: error: previous implicit declaration of ‘sqr’ was here - list0603:う、次のような警告はでるが、動作は正常。なぜ?
list0603.c: In function ‘main’:
list0603.c:10: warning: implicit declaration of function ‘pow’
list0603.c:10: warning: incompatible implicit declaration of built-in function ‘pow’ - ああ、そうか、たぶんdoubleとintのサイズが私の環境だと同じだからか。
- せめて
struct {
int x;
int y;
} z;
としないと、私の環境ではコンパイルできなかった。 - K&Rスタイルでは、
int func(a, b)
int a;
int b;
{ ... }
とな。なんと。 - list0610。うーん、これもちゃんと動いちゃう。
- おお。int printf(const char *, ...)というように...で可変数引数を表現できるんだ。
- プロトタイプの仮引数の識別子と、本体の対応物の識別子は違っていてもよいんだ。
- エラーメッセージとかソースとかで、'__'からはじまる識別子が多い理由がわかった。
プログラマへの道のりは、長いなぁ。。。 こつこつ。
0 件のコメント:
コメントを投稿