コンパイル警告駆除

SoftEther VPN 2.0 のソースコードは、Windows 版の VC++コンパイルするとデフォルトの警告レベルでは警告ゼロで通るのだが、LinuxSolaris などの gccコンパイルするとデフォルトでも警告が出てくる。VC++ は文法チェックが甘いのだろうか。とりあえず指摘されているところを全部修正して警告は出なくなった。だが -Wall にすると、まだ警告が出る。
やむを得ず無限ループを書いている箇所で、while(1) と書くと、条件式が定数です という警告が出る。本来 while の条件式で 1 を入れるコーディングは避けるべきなのだそうだが、いろいろな事情でどうしてもそう書きたいところもある。色々なオープンソースのコードを見ると、代わりに for(;;) と書く人が多いようだ。
杉さん曰く、#define ever (;;) としておき、for ever と書くと見やすくて良いらしい。だがやはり while(1) と書きたい。そこで、AC な手段として、グローバル変数int true = 1; などとしておき、while (true) と書くと、警告が出なくなった。嫌だなあ。