c90-intprom-1.c
来自「用于进行gcc测试」· C语言 代码 · 共 48 行
C
48 行
/* Test for integer promotion rules: C90 subset of types. *//* Origin: Joseph Myers <jsm@polyomino.org.uk> *//* { dg-do compile } *//* { dg-options "-std=iso9899:1990 -pedantic-errors" } */#include <limits.h>#define CHECK(T1, T2, TC) \ do { \ T1 a = 0; \ T2 b = 0; \ TC *c = 0; \ __typeof__(a+b) *d = 0; \ c = d; \ d = c; \ } while (0)voidf (void){ /* One type is unsigned long. */ CHECK(unsigned long, unsigned long, unsigned long); CHECK(unsigned int, unsigned long, unsigned long); CHECK(unsigned long, unsigned int, unsigned long); CHECK(int, unsigned long, unsigned long); CHECK(long, unsigned long, unsigned long); CHECK(unsigned long, int, unsigned long); CHECK(unsigned long, long, unsigned long); /* long and unsigned int. */#if LONG_MAX >= UINT_MAX CHECK(unsigned int, long, long); CHECK(long, unsigned int, long);#else CHECK(unsigned int, long, unsigned long); CHECK(long, unsigned int, unsigned long);#endif /* One type is long. */ CHECK(long, long, long); CHECK(int, long, long); CHECK(long, int, long); /* One type is unsigned int. */ CHECK(unsigned int, unsigned int, unsigned int); CHECK(int, unsigned int, unsigned int); CHECK(unsigned int, int, unsigned int); /* Otherwise int. */ CHECK(int, int, int);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?