#pragma once
ヘッダーを二重読み込みすると、定義が二つ以上あることになってコンパイラはエラーを返す、というのは、C/C++言語の鉄則。名前解決が完璧でないということだよね、まあそれはともかくとして。
#pragma once
このプリプロセサ命令は、ヘッダにせよファイルにせよ、一度しか読み込まれないことを宣言するもので、ヘッダの先頭には必ず付けておくもの、です。ところが、Free bccはこのプリプロセサ命令を正しく処理してくれません。
ヘッダの二重読み込み防止には#pragma onceではない定型文があってそれがこれ。
#ifndef __HEADER__H #define __HEADER__H /*ヘッダの本体をここに書く*/ ,,, #endif
可搬性を重んじるのなら必ずこの方法で書かなければいけません。#pragma onceのほうがスマートに見えるんだがなあ。