1、SDS_HDR_VAR(8,s) 表示使用 struct sdshdr8,入参中的T来替换后面的 ##T。
#define SDS_HDR_VAR(T,s) struct sdshdr##T *sh = (void*)((s)-(sizeof(struct sdshdr##T)));
2、(char *) s 表示取 字符s 的内存首地址
3、memcpm 和 strcmp, strncmp 都是比较字符串 =0表示相等,否则返回-1,1
4、memset(sh, 0, len) 表示 将 数组sh 的 前 len 位设置为 0,一般用于初始化数组
5、size_t 用于表示长度,是由于16,32,64位系统,对于长度最大值定义不同导致的
6、memcpy(s, init, initlen) 表示将 字符 init 的 initlen 位复制给字符 s
7、malloc 表示新分配一个内存空间,初始化新分配的空间为0
realloc 表示更改以前一个变量的长度,增加的时候,可能会移动到另外一个区域,不初始化新增的区域