そもそもhead.hに関数の定義をしてはいけない。
してしまったとしたら、その関数が外部リンケージならエラーになるはず。
ファイルリンケージなら、実体は複数できる可能性が高い。