int、short、long、long long、unsigned、unsigned short、unsigned long、unsigned long long 长度

类型标识符32位机器所占字节长度64位机器所占字节长度格式化输出
int44%d
short22%d
long48%ld
long long88%lld
unsinged44%u
unsinged short22%u
unsiged long48%lu
unsigned long long88%llu

综上所述: 32位机器和64位机器比较,对于long和unsigned long类型,所占用的空间是不一样的,从代码可移植性考虑,
定义变量最好明确所需长度,选用合适的变量类型。(注:这只是常见而已,并不代表所有的32位机器和64位机器均是这样,所以选用比较明确的类型,更合理高效)

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int i_a = 1;
	short s_a = 2;
	long l_a = 3;
	long long ll_a = 4;
	unsigned u_a = 5;
	unsigned short us_a = 6;
	unsigned long ul_a = 7;
	unsigned long long ull_a = 8;

	printf(" i_a = %d, sizeof(i_a) = %u\n", i_a, sizeof(i_a));
	printf(" s_a = %d, sizeof(s_a) = %u\n", s_a, sizeof(s_a));
	printf(" l_a = %ld, sizeof(l_a) = %u\n", l_a, sizeof(l_a));
	printf(" ll_a = %lld, sizeof(ll_a) = %u\n", ll_a, sizeof(ll_a));
	printf(" u_a = %u, sizeof(u_a) = %u\n", u_a, sizeof(u_a));
	printf(" us_a = %u, sizeof(us_a) = %u\n", us_a, sizeof(us_a));
	printf(" ul_a = %lu, sizeof(ul_a) = %u\n", ul_a, sizeof(ul_a));
	printf(" ull_a = %llu, sizeof(ull_a) = %u\n", ull_a, sizeof(ull_a));

	return 1;
}

X86 VS测试结果:
在这里插入图片描述

  • 17
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值