>>422
>関数abc()が別のファイルで、extern UB abc(void)の記述が無いからでしょうか。
>ただ、別ファイルの関数を使う場合、書かなくてもコンパイラが勝手にやってくれると習ったんですが…違うんでしょうか。
コンパイラが別ファイルに関数が定義されてるものとして、そしてそれを
関数暗黙の宣言でint型と仮定してコンパイルして、結果としてコンパイルが通っているだけ。

ヘッダーファイルに関数宣言を書いて読み込ませるのがいいかと。

あとコンパイル時のログを見たり、警告レベルを変えたりするといろいろわかることもある。