32位机器下,int型变量占用的内存空间大小为4个字节,如果不用sizeof的话可以通过以下方式:
定义宏
#include<stdio.h>
#define MySizeof(Value) (char*)(&Value+1)-(char *)&Value
int main()
{
int i;
double f;
double a[4];
double *q;
printf("%d\n",MySizeof(i));
printf("%d\n",MySizeof(f));
printf("%d\n",MySizeof(a));
printf("%d\n",MySizeof(q));
return 0;
}输出结果: 4
8
32
4

本文介绍了一种在32位机器上不使用sizeof运算符来确定不同数据类型所占内存大小的方法,并通过宏定义实现对int、double等类型内存占用的测量。
2116





