gpt4 book ai didi

c - 为什么 sizeof(int) == sizeof(long)?

转载 作者:太空狗 更新时间:2023-10-29 16:45:43 27 4
gpt4 key购买 nike

在下面列出的程序中,sizeof(int) 和 sizeof(long) 在我的机器上是相等的(都等于 4 字节(或 32 位))。据我所知,long 是 8 个字节。这样对吗?我有一台 64 位机器

#include <stdio.h>
#include <limits.h>

int main(void){
printf("sizeof(short) = %d\n", (int)sizeof(short));
printf("sizeof(int) = %d\n", (int)sizeof(int));
printf("sizeof(long) = %d\n", (int)sizeof(long));
printf("sizeof(float) = %d\n", (int)sizeof(float));
printf("sizeof(double) = %d\n", (int)sizeof(double));
printf("sizeof(long double) = %d\n", (int)sizeof(long double));
return 0;
}

最佳答案

A long, as far as I know, is 8 bytes. Is this correct?

不,这是不正确的。 C 和 C++ 规范仅声明 long 必须大于或等于 32 位。 int 可以更小,但是在许多平台上,在 C 和 C++ 中,longint 都是 32 位。

这是prefer fixed width integer types的一个很好的理由例如 int64_t 如果您可以使用它们并且您使用的是 C99 或提供等效类型的框架。

关于c - 为什么 sizeof(int) == sizeof(long)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18901080/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com