e173.c
unsigned charに256は入らない





#include <stdio.h>
struct tag {
char buf[0x1234] ;
} ;
int main()
{
unsigned char c ;
unsigned char hig ; /* 上側サイズ */
unsigned char low ; /* 下側サイズ */
c = 256 ;
c = 0x100 ;
printf("c = %d¥n",c) ;
hig = sizeof(struct tag) >> 8 ;
low = sizeof(struct tag) ; /* Review-Cうるさい */
printf("hig = %02x¥n",hig) ;
printf("low = %02x¥n",low) ;
/* 検出困難な問題(シフトの向きが逆) */
/* & 0xFFでReview-Cを黙らせる */
hig = sizeof(struct tag) << 8 ;
low = sizeof(struct tag) & 0xFF ;
printf("hig = %02x¥n",hig) ;
printf("low = %02x¥n",low) ;
return(0) ;
}
解説
初心者の方へ:
unsigned char で使用できるのは、0xff(255)までです。
なるだけ、INTを使用して下さいね。
中級者の方へ:
うるさくて、すみません。
でも、たまに、
シフトの向きが逆です。