📄 20020510-1.c
字号:
/* Copyright (C) 2002 Free Software Foundation. Test that optimizing ((c>=1) && (c<=127)) into (signed char)c < 0 doesn't cause any problems for the compiler and behaves correctly. Written by Roger Sayle, 8th May 2002. */#include <limits.h>extern void abort (void);voidtestc (unsigned char c, int ok){ if ((c>=1) && (c<=SCHAR_MAX)) { if (!ok) abort (); } else if (ok) abort ();}voidtests (unsigned short s, int ok){ if ((s>=1) && (s<=SHRT_MAX)) { if (!ok) abort (); } else if (ok) abort ();}voidtesti (unsigned int i, int ok){ if ((i>=1) && (i<=INT_MAX)) { if (!ok) abort (); } else if (ok) abort ();}voidtestl (unsigned long l, int ok){ if ((l>=1) && (l<=LONG_MAX)) { if (!ok) abort (); } else if (ok) abort ();}intmain (){ testc (0, 0); testc (1, 1); testc (SCHAR_MAX, 1); testc (SCHAR_MAX+1, 0); testc (UCHAR_MAX, 0); tests (0, 0); tests (1, 1); tests (SHRT_MAX, 1); tests (SHRT_MAX+1, 0); tests (USHRT_MAX, 0); testi (0, 0); testi (1, 1); testi (INT_MAX, 1); testi (INT_MAX+1U, 0); testi (UINT_MAX, 0); testl (0, 0); testl (1, 1); testl (LONG_MAX, 1); testl (LONG_MAX+1UL, 0); testl (ULONG_MAX, 0); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -