C语言 一段简单的代码计算(int的范围) - 编程语言
我们知道,
int
的大小在大多数计算机里面存储长度是
4
个字节
如果,最高位被符号位占领,那么他的取值区间就是
– ~ -1
我们可以用一小段代码来计算这个长度
#include
<stdio.h>
#include
<stdint.h>
#include
<wchar.h>
int
main
(
void
)
{
printf(
"PTRDIFF_MIN = %tdn"
, PTRDIFF_MIN);
printf(
"PTRDIFF_MAX = %+tdn"
, PTRDIFF_MAX);
printf(
"SIZE_MAX = %zun"
, SIZE_MAX);
printf(
"SIG_ATOMIC_MIN = %+jdn"
,(
intmax_t
)SIG_ATOMIC_MIN);
printf(
"SIG_ATOMIC_MAX = %+jdn"
,(
intmax_t
)SIG_ATOMIC_MAX);
printf(
"WCHAR_MIN = %+jdn"
,(
intmax_t
)WCHAR_MIN);
printf(
"WCHAR_MAX = %+jdn"
,(
intmax_t
)WCHAR_MAX);
printf(
"WINT_MIN = %jdn"
, (
intmax_t
)WINT_MIN);
printf(
"WINT_MAX = %jdn"
, (
intmax_t
)WINT_MAX);
printf(
"[-%lld]-[+%lld]n"
,
1ll
<<
(
sizeof
(
int
)
*
8
–
1
) ,(
1ll
<<
(
sizeof
(
int
)
*
8
–
1
))
–
1
);
}
weiqifa@ubuntu:~/c/sizeof$ gcc sizeof.c && a.out
PTRDIFF_MIN = -9223372036854775808
PTRDIFF_MAX = +9223372036854775807
SIZE_MAX = 18446744073709551615
SIG_ATOMIC_MIN = -2147483648
SIG_ATOMIC_MAX = +2147483647
WCHAR_MIN = -2147483648
WCHAR_MAX = +2147483647
WINT_MIN = 0
WINT_MAX = 4294967295
[-2147483648]-[+2147483647]
weiqifa@ubuntu:~/c/sizeof$
里面提到的
WCHARMIN WCHAR_MAX
关于他们的介绍如下
Numeric limits – cppreference.com
这个文件的位置在
/usr/include/limits.h
截图看看里面的内容
<img src="https://www.gcsjs.com/zhujipingce/d/file/2023/01/16/v2-6207fd81c4b0f1cba66dc36700c23911_b.jpg" data-size="normal" data-rawwidth="919" data-rawheight="394" class="origin_image zh-lightbox-thumb" width="919" data-original="https://www.gcsjs.com/zhujipingce/d/file/2023/01/16/v2-6207fd81c4b0f1cba66dc36700c23911_r.jpg">
图上有
CHAR
的大小
<img src="https://www.gcsjs.com/zhujipingce/d/file/2023/01/16/v2-b4cb8b1515ddfc3ff75a981e9396a17e_b.jpg" data-size="normal" data-rawwidth="970" data-rawheight="448" class="origin_image zh-lightbox-thumb" width="970" data-original="https://www.gcsjs.com/zhujipingce/d/file/2023/01/16/v2-b4cb8b1515ddfc3ff75a981e9396a17e_r.jpg">
图上有
int
的大小
发布于:2023-01-18,除非注明,否则均为
原创文章,转载请注明出处。
发表评论