[1712] Re:構造体へのポインタを返す関数
投稿者:774RR
2011/03/21 07:07:27
正解っす。あえてフォローするなら ti 氏が解説を省略したところを。
C のプリプロセッサは単純置換を行う機能であるため、
#include "hogehoge.h" は この行が hogehoge.h の中身に置き換わるだけ
である、ということを意識すると理解が早い。
main.c は File1.h と File2.h を両方取り込む
取り込んだ結果のファイルを翻訳単位という
main.c 中に static KOUZOU1* func(); と static KOUZOU2* func(); が両方入る
同一関数名が違う機能であると宣言されているのでエラー。
gcc -E hoge.c とか gcc -E -C hoge.c とかしてみると参考になるかもしれない。
次のステップへのヒントを
複数人開発をするようになると、重要度は .h ファイル> .c ファイル になる。
.h ファイルには「他人に使ってもらうため」の宣言・コメントを書く
.c ファイルにはその実装を書く
だから、
・他人に使ってもらいたくない static 変数や関数は .h に書かずに .c に書く
・inline 展開される前提の短い static 関数は .h に書くことがある