check-shift.c

来自「MPEG2 PLAYER in linux」· C语言 代码 · 共 41 行

C
41
字号
/* code "borrowed" from JPEG-5 config code*/#include <stdio.h>int is_shifting_signed (arg)     long arg;/* See whether right-shift on a long is signed or not. */{  long res = arg >> 4;  if (res == -0x7F7E80CL) {	/* expected result for signed shift */    return 1;			/* right shift is signed */  }  /* see if unsigned-shift hack will fix it. */  /* we can't just test exact value since it depends on width of long... */  res |= (~0L) << (32-4);  if (res == -0x7F7E80CL) {	/* expected result now? */    return 0;			/* right shift is unsigned */  }  fprintf(stderr, "Right shift isn't acting as I expect it to.\n");  fprintf(stderr, "I fear the DCT software will not work at all.\n\n");  exit(1);}main(){  if (is_shifting_signed(-0x7F7E80B1L)) {    printf("do not define RIGHT_SHIFT_IS_UNSIGNED\n");  }  else {    printf("define RIGHT_SHIFT_IS_UNSIGNED\n");  }}

⌨️ 快捷键说明

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