#pragma once

ヘッダーを二重読み込みすると、定義が二つ以上あることになってコンパイラはエラーを返す、というのは、C/C++言語の鉄則。名前解決が完璧でないということだよね、まあそれはともかくとして。

#pragma once

このプリプロセサ命令は、ヘッダにせよファイルにせよ、一度しか読み込まれないことを宣言するもので、ヘッダの先頭には必ず付けておくもの、です。ところが、Free bccはこのプリプロセサ命令を正しく処理してくれません。

ヘッダの二重読み込み防止には#pragma onceではない定型文があってそれがこれ。

#ifndef __HEADER__H
#define __HEADER__H

/*ヘッダの本体をここに書く*/
,,,

#endif

可搬性を重んじるのなら必ずこの方法で書かなければいけません。#pragma onceのほうがスマートに見えるんだがなあ。