OpenWatcom/C99

OpenWatcom/C99

wcl/wcl386のコンパイラはデフォルトでC89+Watcom拡張(オプション -we)なのでC99コードをコンパイルしたいときは -za99 を明示的に指定する必要がある(このオプション、ドキュメント上にまともな記述がないような…?)。

#include <stdio.h>

int main(void)
{
#if defined(__STDC__)
    printf("__STDC__ %d\n", __STDC__ );
#endif
#if defined(__STDC_VERSION__)
    printf("__STDC_VERSION__ %ldL\n", __STDC_VERSION__ );
    return 1;
#else
    return 0;
#endif
}

結果:

>wcl386 -zq -s -ze is_c99.c && is_c99.exe
__STDC__ 1
__STDC_VERSION__ 199409L

>wcl386 -zq -s -za is_c99.c && is_c99.exe
__STDC__ 1
__STDC_VERSION__ 199409L

>wcl386 -zq -s -za99 is_c99.c && is_c99.exe
__STDC__ 1
__STDC_VERSION__ 199901L

gccでいうところの"-std=gnu99"的なオプションはないみたい(-we99とか指定したらエラーだった)なのですが、-za99でC99+Watcom拡張状態なんですかね…?