convert-int.c
来自「用于进行gcc测试」· C语言 代码 · 共 205 行
C
205 行
/* { dg-options "-std=gnu99 -O0" } *//* N1150 5.1 Conversion between decimal floating types and integer. C99 6.3.1.4(1a) New. */extern void abort (void);int failcnt;#ifdef DBGextern int printf (const char *, ...);#define FAILURE { printf ("failed at line %d\n", __LINE__); failcnt++; }#else#define FAILURE abort ();#endif_Decimal32 d32;_Decimal64 d64;_Decimal128 d128;unsigned int ui;unsigned long ul;unsigned long long ull;int si;long sl;long long sll;_Bool b;voidinit_dfp_1 (void){ d32 = 456.789df; d64 = 23.456789dd; d128 = 1234.5678dl;}voidinit_dfp_2 (void){ d32 = 1.23df; d64 = -3.4dd; d128 = 0.00003dl;}voidinit_dfp_3 (void){ d32 = 0.0DF; d64 = 0.0DD; d128 = 0.0DL;}voidinit_unsigned_int (void){ ui = 987U; ul = 345678UL; ull = 1234567ULL;}voidinit_signed_int (void){ si = -987; sl = -345678; sll = -1234567;}intmain (){ /* C99 Section 6.7.2 Type specifiers. Type _Bool is mentioned in this section. Conversions between _Bool and DFP types. */ /* Decimal float to unsigned integer. */ init_dfp_1 (); ui = d32; if (ui != 456U) FAILURE ul = d32; if (ul != 456UL) FAILURE ull = d32; if (ull != 456ULL) FAILURE ui = d64; if (ui != 23U) FAILURE ul = d64; if (ul != 23UL) FAILURE ull = d64; if (ull != 23ULL) FAILURE ui = d128; if (ui != 1234U) FAILURE ul = d128; if (ul != 1234UL) FAILURE ull = d128; if (ull != 1234ULL) FAILURE /* Decimal float to signed integer. */ /* Decimal float to _Bool. */ init_dfp_2 (); b = d32; if (!b) FAILURE b = d64; if (!b) FAILURE b = d128; if (!b) FAILURE /* Unsigned integer to decimal float. */ init_unsigned_int (); d32 = ui; if (d32 != 987.0df) FAILURE d32 = ul; if (d32 != 345678.0df) FAILURE d32 = ull; if (d32 != 1234567.df) FAILURE d64 = ui; if (d64 != 987.0dd) FAILURE d64 = ul; if (d64 != 345678.0dd) FAILURE d64 = ull; if (d64 != 1234567.dd) FAILURE d128 = ui; if (d128 != 987.0dl) FAILURE d128 = ul; if (d128 != 345678.0dl) FAILURE d128 = ull; if (d128 != 1234567.dl) FAILURE /* Signed integer to decimal float. */ init_signed_int (); d32 = si; if (d32 != -987.0df) FAILURE d32 = sl; if (d32 != -345678.0df) FAILURE d32 = sll; if (d32 != -1234567.df) FAILURE d64 = si; if (d64 != -987.0dd) FAILURE d64 = sl; if (d64 != -345678.0dd) FAILURE d64 = sll; if (d64 != -1234567.dd) FAILURE d128 = si; if (d128 != -987.0dl) FAILURE d128 = sl; if (d128 != -345678.0dl) FAILURE d128 = sll; if (d128 != -1234567.dl) FAILURE /* _Bool to decimal float. */ init_dfp_3 (); b = d32; if (b) FAILURE b = d64; if (b) FAILURE b = d128; if (b) FAILURE if (failcnt != 0) abort (); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?