利用typeof實現一個自己的sizeof

不知道C裏面的sizeof是怎麼實現的,我自己利用typeof實現一個sizeof,實現的宏爲:

#define SIZEOF(val) ((size_t)((typeof(val) *)0+1))

測試代碼:

#include<stdio.h>
#define SIZEOF(val) ((size_t)((typeof(val) *)0+1))
void main()
{
 unsigned int a;
 unsigned char b;
 printf("SIZEOF(a) = %d,SIZEOF(b) = %d,SIZEOF(unsigned char) = %d,SIZEOF(unsigned int) = %d\n",
        SIZEOF(a),SIZEOF(b),SIZEOF(unsigned char),SIZEOF(unsigned int));
}

O(∩_∩)O
輸出結果爲:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章