在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
来源:http://bbs.chinaunix.net/thread-889260-1-1.html 参考:https://publications.gbdirect.co.uk//c_book/chapter2/integral_types.html
ANSI C 提供了3种字符类型,分别是char、signed char、unsigned char
但是char究竟相当于signed char呢还是相当于unsigned char呢??
编译器提供以下参数来对char类型进行设置,
limits.h /* Number of bits in a `char'. */ # define CHAR_BIT 8 /* Minimum and maximum values a `signed char' can hold. */ # define SCHAR_MIN (-128) # define SCHAR_MAX 127 /* Maximum value an `unsigned char' can hold. (Minimum is 0.) */ # define UCHAR_MAX 255 /* Minimum and maximum values a `char' can hold. */ # ifdef __CHAR_UNSIGNED__ # define CHAR_MIN 0 # define CHAR_MAX UCHAR_MAX # else # define CHAR_MIN SCHAR_MIN # define CHAR_MAX SCHAR_MAX # endif
/* The character type that char matches (i.e., signed or unsigned) */ #if CHAR_MIN < 0 typedef signed char underlying_char_type; #else typedef unsigned char underlying_char_type; #endif
test_char.c #include <stdio.h> int main(void) { char a = -1; signed char b = -1; unsigned char c = -1; printf("a=%d, b=%d, c=%d\n", a, b, c); return 0; }
output # ./test_char.elf a=-1, b=-1, c=255 // 从这里可以看出 默认的 char 类型就是 signed char 类型
============ End
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论