#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