实现 sizeof

来源:互联网 发布:2004年网络流行歌曲 编辑:程序博客网 时间:2024/06/06 08:53

实现 sizeof

思路: 用指针表示地址,然后相减

#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;}
[liboyang@database74 test]$ ./a.out mysizeof(): 1mysizeof(): 4mysizeof(): 1mysizeof(): 4mysizeof(): 36
原创粉丝点击