显然,大家容易想到就是用sizeof,但是人家面试官就不让用sizeof实现,就让自己编程实现,这下就发毛了。
哈哈,其实没必要,只要知道sizeof的底层实现便可。sizeof其实不是一个函数只是一个运算符,很简单。
其原理就是当我们对数据类型地址进行加1和减1操作时,实际上就是加或减了相应数据类型字节数的整数倍,其代码如下:
#define sizeof(L_Value) ((char*)(&L_Value + 1) - (char*)(&L_Value))
当然能够与unsigned搭配的数据类型也可以用令其等零,取反也可以实现。
代码如下:
哈哈,这样知道怎么求了吧,我觉得还是用最通用的比较好,就是位操作,效率又高。