#include<stdio.h>
#define STORAGESIZE 5
#define MAX_NAME_LEN 2
typedef struct{
char name[MAX_NAME_LEN];
char feild1;
char feild2;
} strt;
static strt storage[5];
main(){
unsigned char *stp=(unsigned char*)&strt;
unsigned char*stp_end=(unsigned char*)(&strt+STORAGESIZE);
int i;
for(i=0;stp!=stp_end;stp++,i++)
printf("byte%d: %x\n",i,*stp);
}
我试图确认声明为静态的所有结构都将初始化为 0,除了它的填充部分。尝试编译上述内容时出现错误:statictable.c:
In function 'main':
statictable.c:13:38: error: expected expression before 'strt'
statictable.c:14:42: error: expected expression before 'strt'
将强制转换的指针分配给另一个指针可能有什么问题。尽管我知道这可能是初步的。