实现sizeof功能

sizeof 变量名
1. 定义:
sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数

        2. 实现:

#define sizeof_v(var)   ((size_t) ((char *)(&(var) + 1) - (char *)&(var)))/**对变量的计算**/

#define sizeof_t(type)  ((size_t) ((type *)0 + 1))/**对类型占用的内存字计数计算**/

        3. 例程:

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

#define sizeof_v(var)   ((size_t) ((char *)(&(var) + 1) - (char *)&(var)))
#define sizeof_t(type)  ((size_t) ((type *)0 + 1))

typedef struct {
	int age;
	char name[32];
}STU_T;

int main()
{
	char c;
	int i=123;
	
	printf("mysizeof(): %d\n",sizeof_v(c));
	printf("mysizeof(): %d\n",sizeof_v(i));
	printf("mysizeof(): %d\n",sizeof_t(char));
	printf("mysizeof(): %d\n",sizeof_t(int));
	printf("mysizeof(): %d\n",sizeof_t(STU_T));return 1;}



   

你可能感兴趣的:(实现sizeof功能)