以下コードとなりますが、#define CHAR_BIT 8 を追加しても出力結果が追加する前と同じです。何故でしょうか?
#include <stdio.h>
#include <limits.h>
#define CHAR_BIT 8
int main(void)
{
puts("本環境での各文字型・整数型の値の範囲");
printf("char : %d~%d\n", CHAR_MIN , CHAR_MAX);
printf("signed char : %d~%d\n", SCHAR_MIN, SCHAR_MAX);
printf("unsignd char : %d~%d\n", 0 , UCHAR_MAX);
printf("short : %d~%d\n", SHRT_MIN , CHAR_MAX); printf("int : %d~%d\n", INT_MIN , INT_MAX); printf("long : %ld~%ld\n", LONG_MIN , LONG_MAX); printf("unsigned short: %d~%u\n", 0 , USHRT_MAX); printf("unsigned : %d~%u\n", 0 , UINT_MAX); printf("unsigned long : %u~%lu\n", 0 , ULONG_MAX); return 0;
}
書き換えました。
#include <stdio.h>
#define CHAR_BIT 8
int main(void)
{
puts("本環境での各文字型・整数型の値の範囲");
printf("char : %d~%d\n", CHAR_BIT , CHAR_BIT);
printf("signed char : %d~%d\n", CHAR_BIT , CHAR_BIT);
printf("unsignd char : %d~%d\n", 0 , CHAR_BIT);
printf("short : %d~%d\n", CHAR_BIT , CHAR_BIT); printf("int : %d~%d\n", CHAR_BIT , CHAR_BIT); printf("long : %d~%d\n", CHAR_BIT , CHAR_BIT); printf("unsigned short: %d~%u\n", 0 , CHAR_BIT); printf("unsigned : %d~%u\n", 0 , CHAR_BIT); printf("unsigned long : %u~%u\n", 0 , CHAR_BIT); return 0;
}
これで出力が以下となりました。
本環境での各文字型・整数型の値の範囲
char : 888
signed char : 8
unsignd char : 088
short : 8
int : 888
long : 8
unsigned short: 088
unsigned : 0
unsigned long : 0~8
正しい結果でしょうか?
回答4件
あなたの回答
tips
プレビュー