C言語機能テスト結果3

(元のページに戻る)

  • Orange C v5.0.7 。わりとc99対応していて機能はよさそう。が試した版では、コンパイラや出来た実行ファイルがハングすることがある。
  • PellesC v7.00 は lcc の派生。arm対応してたりわりとc99,c11 対応していたりする。
  • lccwin v3.8 は lcc の派生。多少c99対応してる。lccwin64 ではハングすることあり。
  • lcc v4.2 は その派生の lccwin や PellesC の比較用として。 vc5の代わりにvc7.1~vc9で使えるようにソース修正したものを使用。リンカやライブラリアンにvcのものを流用する仕様。文法的な修正は無し。ansi-c89+α で long long は一応あるが x86 では 32ビット整数。

  • pcc配布元のwin用zip で最新のもの(unix用はさらに進んでそうだがwin用は止まっている)。リンカやライブラリアンに mingw を使用。
  • Tiny C 0.96。表はx64版. x86版との違いは、ポインタサイズが違う、のと構造体値を値返しするとハングすること。
  • coins 1.4.5.2-en は cygwin gcc3.4.4 を併用(以前のお試しでコンパイラを差し替えただけ)。素のCコンパイラのみで Cプリプロセッサやリンカ、ライブラリアンは cygwin gcc のものを使っている。だから結果のプリプロセッサ関係は gcc のもの。unsigned __int64 や _Complex 関係は未サポートだが 変数宣言のsizeofができてしまうのか float や double ままのバイト数がえられてしまっている。その他無理やりコンパイル通せるようにしているために__attribute__関係は空マクロでコンパイルが通ってしまっている。
  • ※生のwin32ではヘッダやライブラリ関係に不具合多いので実用性はないが比較用として.
  • lsi-c86 v3.30c 試食版 は 試した中では唯一の16ビットコンパイラ。

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

(元のページに戻る)