今天在看内存对齐计算结构体大小的时候发现一个地方和八股文讲的不一样,一个空结构体大小是1(用来在内存中标识每个对象的区别),但是一个只包括空数组的结构体大小是0(没错,就是0),其中数组名(常量)就标识结构体在内存中的位置(不懂具体原理)。 这个空数组的作用在于节省资源,不需要为该成员分配空间,如果是一个指针的话需要为指针本身分配空间。嵌入式系统中经常用到,例如可以定义一个结构体: struct test { int num; int array[0]; }; //size : 4 这样test结构体在内存中只占4位,那么在使用中,可以用test *t = (tes...