【摘】sizeof实现


注意sizeof是运算符,而非函数 关于sizeof的两个精巧的宏实现。 非数组的sizeof: #defne _sizeof(T) ( (size_t)((T*)0 + 1)) 数组的sizeof: #define array_sizeof(T)   ( (size_t)(&T+1)  - (size_t)(&T)  ) 原理就是c/c++中的指针运算。 百度看了下是这样实现的,  

一切的根源就是指针步长,我喜欢这样叫,我觉得这样更容易让人理解,但是大多数书没有提出这样一个概念。当然这还没完?其实依靠这个原理的不仅仅是sizeof 在linux内核中有非常有名的俩个宏,其原理也是如此。