C 长int的大小不一致
在C中使用C 长int的大小不一致,c,C,在C中使用long int时,我得到了一个大小差异。以下代码: #include <stdio.h> void main() { printf("%d\n", sizeof(long int)); } 给出0(按31移位得到-2147483648,即-2**31)。因此,似乎只使用了4个字节。这是什么意思?我使用的gcc 4.4.5没有任何标志您将它作为一个普通整数打印:printf(“%d”)。尝试将其打印为长整数:printf(“%ld…”)是否需要对“%d”格式说明
long int
时,我得到了一个大小差异。以下代码:
#include <stdio.h>
void main()
{
printf("%d\n", sizeof(long int));
}
给出0(按31移位得到-2147483648,即-2**31)。因此,似乎只使用了4个字节。这是什么意思?我使用的gcc 4.4.5没有任何标志您将它作为一个普通整数打印:
printf(“%d”)
。尝试将其打印为长整数:printf(“%ld…”)
是否需要对“%d”格式说明符进行修改?不确定。尝试“%ld”?是的,这正是需要的。谢谢
#include <stdio.h>
void main()
{
long int a;
a = 1;
a = a << 32;
printf("%d\n", a);
}