charconst-4.c

来自「this is a gcc file, you can download it 」· C语言 代码 · 共 51 行

C
51
字号
/* Copyright (C) 2001 Free Software Foundation, Inc.  *//* { dg-do run } *//* { dg-options "-Wno-multichar -fsigned-char" } *//* This tests how overly-long multichar charconsts are truncated, and   whether "short" multichar charconsts are incorrectly sign extended   (regardless of char signedness).  Preprocessor is used so that we   have only one place where the too long warning is generated, so   that the test works for all targets.   Neil Booth, 8 May 2002.  */#include <limits.h>#if INT_MAX == 32767# define LONG_CHARCONST '!\234a'# define SHORT_CHARCONST '\234a'# define POS_CHARCONST '\1'#elif INT_MAX == 2147483647# define LONG_CHARCONST '!\234abc'# define SHORT_CHARCONST '\234abc'# define POS_CHARCONST '\234a'#elif INT_MAX == 9223372036854775807# define LONG_CHARCONST '!\234abcdefg'# define SHORT_CHARCONST '\234abcdefg'# define POS_CHARCONST '\234a'#else/* Target int size not handled, do something that won't fail.  */# define LONG_CHARCONST '\234a'# define SHORT_CHARCONST '\234a'# define POS_CHARCONST '\1'#endif#if POS_CHARCONST < 0# error Charconst incorrectly sign-extended#endif#if LONG_CHARCONST != SHORT_CHARCONST /* { dg-warning "too long" "" } */# error Overly long charconst truncates wrongly for preprocessor#endifint main (){  if (POS_CHARCONST < 0)    abort ();  if (LONG_CHARCONST != SHORT_CHARCONST)  /* { dg-warning "too long" "" } */    abort ();  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?