C言語機能テスト結果1

(元のページに戻る)

  • c++ もあるコンパイラの Cコンパイラとして使った場合の結果(C++としてコンパイルした場合の結果は C言語機能テスト結果2
  • gccとして mingw tdm版 を使用.gccはバージョンが違うと大きくかわる部分もあるがテストは4.7.1のみ.(gcc自体は4.8.1が出ている). また配布バイナリによってオプションのサポート具合が違い、mingw本家版だとSJIS対応のオプションが効かない等ある.
  • clang は mingw 本家版4.6.2 にファイル追加した状態。
    ※うちの環境のせいか?mingw版はコンパイラの起動がやたら遅い。(cygwinやlinuxでは速い)
  • vc は express でなくproやstd版を使用。vc9,vc11はspやupdateを当てた状態. vc6,vc7.1は古いpcのw2k環境で状態の詳細不明。c99以降はc++と矛盾しない機能の一部対応で基本的に規格には準拠させていない模様。
    vc11の32bit版は表にしていないが、64bit版との違いとしてポインタサイズ以外に64ビット整数のBitScan系組込関数が使えない.
  • dmc v8.56digitalmarsのc/c++ダウンロードページから v8.56 と書かれたものを取得(頁によっては8.52のままだったり)。わりとc99対応中のよう。
  • Open Watcom 1.9。オープンソースだけど開発は停滞。が非公式にフォークしてる模様。(このテストは本家の1.9)
  • borland-C 5.5.1。borland絡みで今でもフリー配布されてるコンパイラは2000年製の5.5.1 だけなのでそれを使用。C++としてはいろいろ古くて不都合あるけれど c90 としてはそこそこ。

[c基本機能]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
option
コンパイラオプション
c/plain_char_is_signed.c
char の符号
signedsignedsignedsignedsignedsignedsignedsignedunsignedsigned
c/char_bit_size.c
char のビット数
8888888888
c/sizeof_char.c
char のバイト数
1111111111
c/sizeof_short.c
short のバイト数
2222222222
c/sizeof_int.c
int のバイト数
4444444444
c/sizeof_long.c
long のバイト数
4444444444
c/sizeof_ptr.c
ポインタのバイト数
8448444444
c/sizeof_float.c
float のバイト数
4444444444
c/sizeof_double.c
double のバイト数
8888888888
c/sizeof_longdouble.c
long double のバイト数
161212888810810
c/short_int.c
short int と記述できるか
passpasspasspasspasspasspasspasspasspass
c/unsigned_short_int.c
unsigned short int と記述できるか
passpasspasspasspasspasspasspasspasspass
c/unsigned_int.c
unsigned int と記述できるか
passpasspasspasspasspasspasspasspasspass
c/long_int.c
long int と記述できるか
passpasspasspasspasspasspasspasspasspass
c/unsigned_long_int.c
unsigned long int と記述できるか
passpasspasspasspasspasspasspasspasspass
c/cmp_int_uint.c
int値とunsigned値の比較(int→unsigned整数昇格)
passpasspasspasspasspasspasspasspassfail[e]
c/m1div4294967295.c
整数昇格の都合で -1/4294967295 の結果が 0(C99以降) か 1(以前)か
1101111011
c/macro_ifdef.c
#ifdef が使えるか
passpasspasspasspasspasspasspasspasspass
c/macro_define.c
引数有の #define マクロが使えるか
passpasspasspasspasspasspasspasspasspass
c/macro_file_line.c
__FILE__ __LINE__ __DATE__ __TIME__ があるか
passpasspasspasspasspasspasspasspasspass
c/bitfield.c
ビットフィールドが使えるか
passpasspasspasspasspasspasspasspasspass
c/local_var_init.c
ローカル変数定義で初期値が使えるか
passpasspasspasspasspasspasspasspasspass
c/local_block_var.c
ブロック内でローカル変数定義できるか
passpasspasspasspasspasspasspasspasspass
c/local_static_var.c
関数ローカルでstatic変数定義できるか
passpasspasspasspasspasspasspasspasspass
c/local_block_static_var.c
ブロック内でstatic変数定義できるか
passpasspasspasspasspasspasspasspasspass
c/union.c
union が使えるか
passpasspasspasspasspasspasspasspasspass
c/struct1.c
構造体が使えるか
passpasspasspasspasspasspasspasspasspass
c/struct2.c
同名のメンバー名が他のstructで別の型・相対位置でも使えるか
passpasspasspasspasspasspasspasspasspass
c/number_of_int32_without_l.c
サフィックス無で32ビット符号付整数リテラルが使えるか
enableenableenableenableenableenableenableenableenableenable
c/number_of_uint32_without_ul.c
サフィックス無で32ビット符号無16進整数リテラルが使えるか
enableenableenableenableenableenableenableenableenableenable
c/number_of_int64_without_ll.c
サフィックス無で64ビット符号付整数リテラルが使えるか
enableenableenableenableenableenableenableno supportenableenable
c/number_of_uint64_without_ull.c
サフィックス無で64ビット符号無16進整数リテラルが使えるか
enableenableenableenableenableenableenableenableenableenable
[old-c特有]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
kr/extern_in_func.c
関数中のextern 宣言が関数外に影響するか
no supportno supportno supportno supportno supportno supportno supportenableno supportno support
kr/oct0809.c
8進数リテラルで 8・9が使えてしまうか
no supportno supportno supportno supportno supportno supportno supportno supportno supportno support
[c90 で確定した機能]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
c90/sizeof_signed_char.c
signed char のバイト数
1111111111
c90/sizeof_unsigned_char.c
unsigned char のバイト数
1111111111
c90/sizeof_wide_ch.c
L'C' のバイト数
2222222222
c90/sizeof_is_unsigned.c
sizeofした結果の値の型がunsignedか
passpasspasspasspasspasspasspasspasspass
c90/number_of_uint.c
後ろに U を付けた整数リテラルが使えるか
passpasspasspasspasspasspasspasspasspass
c90/number_of_long.c
後ろに L を付けた整数リテラルが使えるか
passpasspasspasspasspasspasspasspasspass
c90/number_of_ulong.c
後ろに UL を付けた整数リテラルが使えるか
passpasspasspasspasspasspasspasspasspass
c90/number_of_flt.c
後ろに F を付けたfloatリテラルが使えるか
passpasspasspasspasspasspasspasspasspass
c90/number_of_ldbl.c
後ろに L を付けた long double リテラルが使えるか
passpasspasspasspasspasspasspasspasspass
c90/macro_bsl_join.c
#行の末に \ を置いて次行を連結できるか
passpasspasspasspasspasspasspasspasspass
c90/macro_if.c
#if が使えるか
passpasspasspasspasspasspasspasspasspass
c90/macro_elif.c
#elif が使えるか
passpasspasspasspasspasspasspasspasspass
c90/macro_defined.c
#ifで defined が使えるか
passpasspasspasspasspasspasspasspasspass
c90/macro_pragma.c
#pragma が使えるか(未対応の指定でエラーにならないか)
passpasspasspasspasspasspasspasspasspass
c90/macro_to_str.c
マクロで #による"文字列"リテラル化ができるか
passpasspasspasspasspasspasspasspasspass
c90/macro_cat.c
マクロで ## による連結が行えるか
passpasspasspasspasspasspasspasspasspass
c90/macro_tok_cat.c
トークン連結マクロが使えるか
passpasspasspasspasspasspasspasspasspass
c90/comment_to_spc.c
/*コメント*/ が空白扱いになっているか
passpasspasspasspasspasspasspasspasspass
c90/str_join.c
隣接する "文字列リテラル" が連結するか
passpasspasspasspasspasspasspasspasspass
c90/entry.c
かって予約語だったentryがユーザ定義の名前として使えるか
passpasspasspasspasspasspasspasspasspass
c90/enum.c
enum が使えるか
passpasspasspasspasspasspasspasspasspass
c90/func_arg_struct.c
関数引数で構造体の値渡を使えるか.
passpasspasspasspasspasspasspasspasspass
c90/func_arg_ppp.c
可変引数指定 ... が使えるか
passpasspasspasspasspasspasspasspasspass
c90/func_ptr_call.c
関数へのポインタを用いて単純な関数呼出が記述できるか
passpasspasspasspasspasspasspasspasspass
c90/plus.c
単項 + が使えるか
passpasspasspasspasspasspasspasspasspass
c90/switch_long.c
switch の分岐値として long 型が使えるか
passpasspasspasspasspasspasspasspasspass
c90/struct_ini_comma.c
struct 型の初期値で余分にカンマがあっても良いか.
passpasspasspasspasspasspasspasspasspass
c90/struct_copy.c
構造体変数同士の代入が行えるか
passpasspasspasspasspasspasspasspasspass
c90/struct_local_ini.c
ローカル構造体変数の定義で初期値を記述できるか
passpasspasspasspasspasspasspasspasspass
c90/struct_of_funcResult.c
構造体値を関数の帰値にできるか
passpasspasspasspasspasspasspasspasspass
c90/union_ini.c
共用体の初期化が行えるか
passpasspasspasspasspasspasspasspasspass
c90/union_local_ini.c
共用体のローカル変数の初期化が行えるか
passpasspasspasspasspasspasspasspasspass
c90/const_var.c
const 変数定義できるか
passpasspasspasspasspasspasspasspasspass
c90/volatile_var.c
volatile変数定義できるか
passpasspasspasspasspasspasspasspasspass
c90/void_arg.c
引数無関数宣言で引数に void 指定できるか
passpasspasspasspasspasspasspasspasspass
c90/const_volatile_var.c
const volatile 変数できるか
passpasspasspasspasspasspasspasspasspass
c90/wide_char.c
L'A'のようなワイド文字リテラルが使えるか
passpasspasspasspasspasspasspasspasspass
c90/wide_cstr.c
L"str"のようなワイド文字列リテラルが使えるか
passpasspasspasspasspasspasspasspasspass
c90/wide_cstr_join.c
隣接ワイド文字列リテラル同士の連結が行われるか
passpasspasspasspasspasspasspasspasspass
[c99 で追加された機能]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
c99 option
c99 有効化オプション
-std=c99-std=c99-std=c99-za99
c99/sizeof_llong.c
long long のバイト数
888888no support88no support
c99/sizeof_ullong.c
unsigned long long のバイト数
888888no support88no support
c99/number_of_llong.c
後ろに LL のついた整数リテラルが使えるか
passpasspasspasspasspassfail[c]passpassfail[c]
c99/number_of_ullong.c
後ろに ULL のついた整数リテラルが使えるか
passpasspasspasspasspassfail[c]passpassfail[c]
c99/switch_llong.c
switch で long long 値が使えるか
passpasspasspasspasspassfail[c]fail[e]fail[c]fail[c]
c99/enum_ini_comma.c
enum 定義で最後に余分なカンマを置けるか
passpasspasspasspasspasspasspasspasspass
c99/mod_minus.c
負値のある%計算がc99の仕様になっているか
passpasspasspasspasspasspasspasspasspass
c99/m1div4294967295.c
整数昇格の都合で -1/4294967295 の結果が 0(C99以降) か 1(以前)か
0001111011
c99/struct_memb_array_0.c
構造体メンバでサイズ 0 の配列を定義できるか
passpasspasspasspasspasspasspassfail[c]fail[c]
c99/line_comment.c
行コメント//が使えるか
passpasspasspasspasspasspasspasspasspass
c99/line_comment_bsl_join.c
行コメント//の末に\があったとき次行が連結されるか
passpasspasspasspasspasspasspasspasspass
c99/macro_empty_arg1.c
1引数マクロで引数が空の場合に対応しているか
enableenableenableno supportno supportno supportno supportenableenableno support
c99/macro_empty_arg2.c
2引数マクロで引数が空の場合に対応しているか
passpasspasspasspasspassfail[e]passpasspass
c99/macro_va.c
可変引数マクロを使えるか
passpasspasspasspassfail[c]fail[c]passpassfail[c]
c99/macro_va_2.c
可変引数マクロから作った引数有マクロを使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]passpassfail[c]
c99/__func__.c
__func__ が使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]passpassfail[c]
c99/_Pragma.c
_Pragma が使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c99/inline_func.c
関数の inline 指定が使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]passpassfail[c]
c99/wide_cstr_join99.c
ワイド文字列リテラルとそうでない文字列リテラルの連結が行えるか
passpasspassfail[c]fail[c]fail[c]fail[c]fail[c]passpass
c99/hexfloat.c
16進数浮動小数点リテラルが使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]passfail[c]fail[c]
c99/compound_literal.c
(型名){...} による型値リテラルが使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c99/local_def_var.c
(c++のように)文の後でもローカル変数定義できるか
passpasspassfail[c]fail[c]fail[c]fail[c]passpassfail[c]
c99/for_def_var.c
for の第一項でローカル変数定義できるか
passpasspassfail[c]fail[c]fail[c]fail[c]passpassfail[c]
c99/unicode_esc_char.c
\u???? を文字列リテラル中に用いることができるか
passpasspasspasspasspassfail[e]passfail[e]fail[e]
c99/var_name_esc_unicode.c
\u???? を用いて変数定義できるか
fail[c]fail[c]fail[c]passpasspassfail[c]passfail[c]fail[c]
[c11で追加された機能]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
c11 option
c11有効化オプション
-std=c11-std=c11-std=c11-za99
c11/dup_typedef.c
同じtypedef定義を複数回行えるか
passpasspasspasspasspasspasspasspasspass
c11/anonymous_struct_in_union.c
union 定義中に 無名構造体を使えるか
passpasspasspasspasspasspasspasspasspass
c11/anonymous_union_in_struct.c
struct 定義中に 無名共用体を使えるか
passpasspasspasspasspasspasspasspasspass
c11/u8str.c
u8"文字列" を使えるか
passpassfail[c]fail[c]fail[c]fail[c]fail[c]passfail[c]fail[c]
c11/u16str.c
u"文字列" を使えるか
passpassfail[c]fail[c]fail[c]fail[c]fail[c]passfail[c]fail[c]
c11/u32str.c
U"文字列" を使えるか
passpassfail[c]fail[c]fail[c]fail[c]fail[c]passfail[c]fail[c]
[日本語文字関係]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
SJIS option
SJIS有効化オプション
-finput-charset=cp932 -fexec-charset=cp932左に同じ-j0-zk1
c90/wide_char_sjis.c
SJISソースで L'字' が使えるか
passpassfail[c]passpasspasspassfail[e]passpass
c90/wide_char_utf8.c
UTF8ソースで L'字' が使えるか
passpasspassfail[e]fail[e]fail[e]fail[e]fail[c]fail[c]pass
c90/wide_cstr_sjis.c
SJISソースで L'字' L"文字列" が使えるか
passpassfail[c]passpasspasspasspassfail[e]pass
c90/wide_cstr_utf8.c
UTF8ソースで L'字' L"文字列" が使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c99/line_comment_sjis.c
SJISソースで 行末に0x5c(\)を含む文字を使って無問題か
passpassfail[e]passpasspasspasspasspasspass
c99/var_name_utf8.c
UTF8ソースで 0x7fより大きい文字コードを名前に使えるか
fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c99/var_name_sjis.c
SJISソースで 0x7fより大きい文字コードを名前に使えるか
fail[c]fail[c]fail[c]passpassfail[c]fail[c]fail[c]fail[c]fail[c]
c99/macro_name_utf8.c
UTF8ソースで 0x7fより大きい文字コードをマクロ名に使えるか
fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c99/macro_name_sjis.c
SJISソースで 0x7fより大きい文字コードをマクロ名に使えるか
fail[c]fail[c]fail[c]passpassfail[c]fail[c]fail[c]fail[c]fail[c]
[c++仕様準拠]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
c++/void_main_return_0.c
void main で暗黙に 0を返すか
disable[e]disable[e]disable[e]enableenableenabledisable[e]enableenabledisable[e]
[VC/GCC 拡張共通]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
vc/sizeof_m128.c
__m128 のバイト数
16no support16161616no supportno supportno supportno support
vc/__restrict.c
__restrict が使えるか
enableenableenableenableenableno supportno supportenableenableno support
gcc/__FUNCTION__.c
__FUNCTION__ が使えるか
enableenableenableenableenableenableno supportenableenableno support
vc/__COUNTER__.c
__COUNTER__ マクロが使えるか
enableenableenableenableenableenableno supportno supportno supportno support
vc/pragma_once.c
#pragma once が使えるか
enableenableenableenableenableenableenableenableenabledisable[e]
[VC の拡張機能]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
vc/sizeof_int64.c
__int64 のバイト数
no supportno supportno support8888888
vc/sizeof_unsigned_int64.c
unsigned __int64 のバイト数
no supportno supportno support8888888
vc/__cdecl.c
__cdecl が使えるか
enableenableenableenableenableenableenableenableenableenable
vc/__stdcall.c
__stdcall が使えるか
enableenableenableenableenableenableenableenableenableenable
vc/__fastcall.c
__fastcall が使えるか
enableenableenableenableenableenableenableenableenableenable
vc/__forceinline.c
__forceinline が使えるか
no supportno supportno supportenableenableenableenableno supportno supportno support
vc/declspec_noinline.c
__declspec(noinline) が使えるか
enableenableenableenableenableenableno supportno supportno supportno support
vc/declspec_selectany.c
__declspec(selectany) が使えるか
enableenableno supportenableenableenableenableno supportno supportenable
vc/declspec_align.c
__declspec(align(N)) が使えるか
enableenableenableenableenableenableno supportno supportno supportno support
vc/declspec_noreturn.c
__declspec(noreturn) が使えるか
enableenableenableenableenableenableenableno supportno supportenable
vc/declspec_thread.c
declspec(thread) が使えるか
enableenableenableenableenableenableenableenableenableenable
vc/declspec_dllimport.c
__declspec(dllimport) を使えるか(コンパイルのみ)
enableenableenableenableenableenableenableenableenableenable
vc/declspec_dllexport.c
__declspec(dllexport) を使えるか(コンパイルのみ)
enableenableenableenableenableenableenableenableenableenable
vc/include_intrin.c
#include <intrin.h> できるか
enableno supportno supportenableenableno supportno supportno supportno supportno support
vc/_InterLockedIncrement.c
_InterLockedIncrement/_InterLockedDecrementが使えるか
enableno supportno supportenableenableno supportno supportno supportno supportno support
vc/_InterLockedExchange.c
_InterLockedExchange が使えるか
enableno supportno supportenableenableno supportno supportno supportno supportno support
vc/_ReadWriteBarrier.c
_ReadWriteBarrier が使えるか
no supportno supportno supportenableenableno supportno supportno supportno supportno support
vc/_ByteSwap.c
_ByteSwap_???? が使えるか
enableno supportno supportenableenableno supportno supportno supportno supportno support
vc/_BitScan.c
_BitScanForward/_BitScanReverseが使えるか
disable[e]no supportno supportenableenableno supportno supportno supportno supportno support
vc/_BitScan64.c
_BitScanForward64/_BitScanReverse64が使えるか
disable[e]no supportno supportenableno supportno supportno supportno supportno supportno support
vc/__FUNCSIG__.c
__FUNCSIG__ (関数定義文字列)マクロが使えるか
no supportno supportno supportenableenableenableno supportno supportno supportno support
vc/__FUNCDNAME__.c
__FUNCDNAME__ (マングル名文字列)マクロが使えるか
no supportno supportno supportenableenableenableno supportno supportno supportno support
vc/__pragma.c
__pragma が使えるか
no supportno supportno supportenableenableenableno supportno supportno supportno support
[gcc の拡張機能]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
gcc/sizeof_int128.c
__int128 のバイト数
16no support16no supportno supportno supportno supportno supportno supportno support
gcc/switch_i128.c
unsigned __int128 変数で switch が行えるか
enableno supportenableno supportno supportno supportno supportno supportno supportno support
gcc/binary_literal.c
2進数リテラル 0b???? が使えるか
enableenableenableno supportno supportno supportno supportenableno supportno support
gcc/attribute_alias.c
__attribute__( (alias("name")) ) が使えるか
enableenableenableno supportno supportno supportno supportno supportno supportno support
gcc/attribute_always_inline.c
__attribute__( (always_inline) ) が使えるか
enableenableenableno supportno supportno supportno supportno supportno supportno support
gcc/attribute_noinline.c
__attribute__( (noinline) ) が使えるか
enableenableenableno supportno supportno supportno supportno supportno supportno support
gcc/attribute_selectany.c
__attribute__( (selectany) ) が使えるか
enableenableno supportno supportno supportno supportno supportno supportno supportno support
gcc/attribute_weak.c
__attribute__( (weak) ) が使えるか
enableenableenableno supportno supportno supportno supportno supportno supportno support
gcc/attribute_aligned.c
__attribute__( (aligned(N)) ) が使えるか
enableenableenableno supportno supportno supportno supportno supportno supportno support
gcc/attribute_noreturn.c
__attribute__( (noreturn) ) が使えるか
enableenableenableno supportno supportno supportno supportno supportno supportno support
gcc/__thread_var.c
__thread 変数定義ができるか
enableenableno supportno supportno supportno supportno supportno supportno supportno support
gcc/__sync_add_and_fetch.c
__sync_add_and_fetch が使えるか
enableenableenableno supportno supportno supportno supportno supportno supportno support
gcc/__sync_val_compare_and_swap.c
__sync_val_compare_and_swap が使えるか
enableno supportenableno supportno supportno supportno supportno supportno supportno support
gcc/__builtin_bswap16.c
__builtin_bswap16 が使えるか
no supportno supportenableno supportno supportno supportno supportno supportno supportno support
gcc/__builtin_bswap3264.c
__builtin_bswap32 __builtin_bswap64 が使えるか
enableenableenableno supportno supportno supportno supportno supportno supportno support
gcc/__builtin_clz.c
__builtin_clz/__builtin_tlz/__builtin_popcount が使えるか
enableenableenableno supportno supportno supportno supportno supportno supportno support
gcc/__builtin_clzll.c
__builtin_clzll/__builtin_tlzll/__builtin_popcountll が使えるか
enableenableenableno supportno supportno supportno supportno supportno supportno support
gcc/__PRETTY_FUNCTION__.c
__PRETTY_FUNCTION__ が使えるか
enableenableenableno supportno supportno supportno supportenableno supportno support
gcc/include_next.c
#include_next が使えるか
enableenableenableno supportno supportno supportno supportno supportno supportno support
[= C++非互換 機能 =]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
c/sizeof_ch.c
'C' のバイト数
4444444144
kr/old_style_func.c
旧仕様の関数定義ができるか
passpasspasspasspasspasspasspasspasspass
kr/ref_register.c
register 変数のアドレスを取れるか
no supportno supportno supportno supportno supportno supportno supportno supportno supportno support
c/default_type.c
型省略でint定義ができるか
passpasspasspasspasspasspasspasspasspass
c/multi_def_var.c
同一グローバル変数を複数回定義できるか
passpasspasspasspasspasspasspasspasspass
c/auto.c
C言語としての auto 指定ができるか
passpasspasspasspasspasspasspasspasspass
c/struct3.c
struct S{} と typedef struct{} S が別物として定義できるか
passpasspasspasspasspasspasspasspasspass
c/struct4.c
関数内の struct a 定義がグローバル変数 a を隠さないか
passpasspasspasspasspasspasspasspasspass
c/struct_struct.c
構造体Aの中で定義された構造体Bを外部で直接利用できるか
passpasspasspasspasspasspasspasspasspass
c/recersive_main.c
main()を再帰呼び出しできるか
passpasspasspasspasspasspasspasspasspass
c/sizeof_comma_op.c
char a[9]; sizeof( (char)0,a ) が 左辺値(9)か 右辺値( sizeof(char*) )か
rvaluervaluervaluervaluervaluervaluervaluervaluelvaluervalue
[c90 の機能]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
c90/void_ptr.c
void* から他の型のポインタへキャスト無しで代入できるか
passpasspasspasspasspasspasspasspasspass
c90/const_var_unini.c
初期値指定無しの const 変数を使えるか
passpasspasspasspasspasspasspasspasspass
c90/char_array_no_null.c
char a[N] を '\0'無で丁度長さNの文字列リテラルで初期化できるか
passpasspasspasspasspasspasspasspasspass
c90/ref_array.c
配列名のみに対して & をつけてアドレスが取得できるか
passpasspasspasspasspasspassfail[c]passpass
c90/enum_var_set.c
enum 変数に直接整数値を設定できるか
passpasspasspasspasspasspasspasspasspass
c90/struct_def_func_ret.c
関数定義の返型で構造体定義できるか
passpasspasspasspasspasspasspasspasspass
c90/struct_def_func_arg.c
関数定義の引数で構造体定義できるか
passpasspasspasspasspasspassfail[c]passpass
[c99 の機能]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
c99/__STDC_VERSION__.c
__STDC_VERSION__ が定義されているか。あればその値
199901L199901L199901Lno supportno supportno supportno support199901L199901Lno support
c99/__STDC_ISO_10646__.c
__STDC_ISO_10646__ が定義されているか。あればその値
no supportno supportno supportno supportno supportno supportno supportno supportno supportno support
c99/__STDC_IEC_559__.c
__STDC_IEC_559__ が定義されているか。
no supportno supportno supportno supportno supportno supportno support1no supportno support
c99/__STDC_IEC_559_COMPLEX__.c
__STDC_IEC_559_COMPLEX__ が定義されているか。
no supportno supportno supportno supportno supportno supportno support1no supportno support
c99/__STDC_MB_MIGHT_NEQ_WC__.c
__STDC_MB_MIGHT_NEQ_WC__ が定義されているか。
no supportno supportno supportno supportno supportno supportno supportno supportno supportno support
c99/sizeof_Bool.c
_Bool のバイト数
111no supportno supportno supportno support11no support
c99/sizeof_float_Complex.c
float _Complex のバイト数
888no supportno supportno supportno support88no support
c99/sizeof_double_Complex.c
double _Complex のバイト数
161616no supportno supportno supportno support1616no support
c99/sizeof_long_double_Complex.c
long double _Complex のバイト数
322424no supportno supportno supportno support2016no support
c99/sizeof_float_Imaginary.c
float _Imaginary のバイト数
no supportno supportno supportno supportno supportno supportno support44no support
c99/sizeof_double_Imaginary.c
double _Imaginary のバイト数
no supportno supportno supportno supportno supportno supportno support88no support
c99/sizeof_long_double_Imaginary.c
long double _Imaginary のバイト数
no supportno supportno supportno supportno supportno supportno support108no support
c99/designated_ini.c
構造体の初期化でメンバー名による初期化が行えるか
passpasspassfail[c]fail[c]fail[c]fail[c]passpassfail[c]
c99/array_ini.c
配列の初期化で添字番号による部分初期化が行えるか
passpasspassfail[c]fail[c]fail[c]fail[c]passpassfail[c]
c99/compound_literal_arg.c
(型名){...} へのポインタを関数引数でつかえるか
passpasspassfail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c99/variable_length_array.c
可変長(実行時サイズ指定)(ローカル)配列変数が使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]passfail[c]fail[c]
c99/variable_length_array_sizeof.c
可変長配列のsizeofが使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]passfail[c]fail[c]
c99/variable_length_array_typedef.c
可変長配列のtypedefが使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]fail[e]fail[c]fail[c]
c99/variable_length_array_funcarg.c
関数引数で可変長配列が使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]passfail[c]fail[c]
c99/variable_length_array_funcarg2.c
関数引数で可変長配列が使えるか(サイズ後置)
passpasspassfail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c99/restrict_ptr.c
restrict ポインタが使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]passpassfail[c]
c99/array_type_qualifiers.c
関数引数の配列の定義で[cv修飾]が使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]passfail[c]fail[c]
c99/c99namescope.c
{}無if本文で暗黙のブロック・スコープが有効か
passpasspassfail[e]fail[e]fail[e]fail[e]fail[e]fail[e]fail[e]
c99/c99namescope2.c
if条件式中の暗黙のブロック・スコープが有効か
passpasspassfail[e]fail[e]fail[e]fail[e]fail[e]fail[e]fail[e]
[c11 の機能]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
c11/__STDC_VERSION__.c
c11対応ならば __STDC_VERSION__ の値
201112L201112L201112Lno supportno supportno supportno support199901L199901Lno support
c11/__STDC_NO_ATOMICS__.c
__STDC_NO_ATOMICS__ マクロが定義されているか
no supportno supportno supportno supportno supportno supportno supportno supportno supportno support
c11/__STDC_NO_COMPLEX__.c
__STDC_NO_COMPLEX__ マクロが定義されているか
no supportno supportno supportno supportno supportno supportno supportno supportno supportno support
c11/__STDC_NO_THREADS__.c
__STDC_NO_THREADS__ マクロが定義されているか
no supportno supportno supportno supportno supportno supportno supportno supportno supportno support
c11/__STDC_NO_VLA__.c
__STDC_NO_VLA__ マクロが定義されているか
no supportno supportno supportno supportno supportno supportno supportno supportno supportno support
c11/__STDC_ANALYZABLE__.c
__STDC_ANALYZABLE__ マクロが定義されているか
no supportno supportno supportno supportno supportno supportno supportno supportno supportno support
c11/__STDC_UTF_16__.c
__STDC_UTF_16__ マクロが定義されているか
11no supportno supportno supportno supportno supportno supportno supportno support
c11/__STDC_UTF_32__.c
__STDC_UTF_32__ マクロが定義されているか
11no supportno supportno supportno supportno supportno supportno supportno support
c11/__STDC_LIB_EXT1__.c
__STDC_LIB_EXT1__ マクロが定義されているか
no supportno supportno supportno supportno supportno supportno supportno support200509Lno support
c11/_Static_assert.c
_Static_assert が使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c11/_Noreturn.c
_Noreturn が使えるか
passpassfail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c11/_Alignas.c
_Alignas(a) が使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c11/_Alignof.c
_Alignof(t) が使えるか
passpasspassfail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c11/_Atomic.c
_Atomic が使えるか
fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c11/_Thread_local.c
_Thread_local が使えるか
fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
c11/_Generic.c
_Generic が使えるか
fail[c]fail[c]passfail[c]fail[c]fail[c]fail[c]fail[c]fail[c]fail[c]
[gcc 拡張]mingw64 gcc 4.7.1 tdmmingw gcc 4.7.1 tdmclang 3.2 +mingwvc11 x64vc9vc7.1vc6dmc v.8.56Open Watcom C v.1.9Borland C v5.5.1
gcc/_Complex_number_i.c
1.0+2.0i のような Complex表記ができるか
enableenableenableno supportno supportno supportno supportno supportno supportno support
gcc/_Complex_real_imag.c
__real__ __imag__ が使えるか
enableenableenableno supportno supportno supportno supportno supportno supportno support

(元のページに戻る)