0x00
很多东西用多了就缺乏了,洞察力,觉得就该如此。这也许就是中国那句老话:当局者迷。今天看到c群里面的一个学生问求一个数组的大小如何写,当然不由自主的敲了sizeof
0x04
sizeof是一个运算符不是函数,但是我突然觉得,他是如何实现的那?如果是一个字符串还可以判断末尾的 '\0' 那对一块内存如何去判断他的结束那?
0x08
注意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++中的指针运算。
百度看了下是这样实现的,