#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: 并试图编译上面时,我得到的错误
c预期表达式之前{aStructName}
In function 'main':
statictable.c:13:38: error: expected expression before 'strt'
statictable.c:14:42: error: expected expression before 'strt'
什么可能是错误的铸造指针到另一个pointer.Although我知道这可能变成一个任务是最初级的。
总是指定'main()'的返回类型('int'); C99(和C11)需要它。总的来说,最好从程序中返回一个值(0表示成功),尽管C99允许您省略它,然后返回零 - 但C89不允许您省略返回值。你不能双方都有。 – 2012-08-06 04:52:55