- 论坛徽章:
- 0
|
我写了个ec程序,ec里的结构体在内存里为什么会多了几个字节呢
EXEC SQL BEGIN DECLARE SECTION;
typedef struct cmmcode_s
{
char codtp[3];
int codsq;
char valtp[2];
}cmmcode_t;
char pDbs[20+1];
cmmcode_t cmmcode;
EXEC SQL END DECLARE SECTION;
int main()
{
char *p=NULL;
int i;
printf("sizeof[%d]\n",sizeof(cmmcode_t)); //在c程序里这里的长度是9,但ec为什么是12??????
memcpy(cmmcode.codtp,"123",3);
cmmcode.codsq=0x12345678;
memcpy(cmmcode.valtp,"12",2);
p=(char *)&cmmcode;
for(i=0;i<sizeof(cmmcode_t);i++)
printf("%2x ",*(p+i));
printf("\n");
return 0;
}
打印出来的结果是31 32 33 0 12 34 56 78 31 32 0 0
把这个改成c程序编译运行结果是 31 32 33 12 34 56 78 31 32
正常应该是后者才对啊 |
|