请教sizeof()里面的值? | ||
< = src="/AD/200510/3.js"> | ||
example:
mmcpy(addrptr,&in_val,sizefo(struct in_addr)); 这个sizeof(你打反了)是复制过程,长度是struct in_addre长度 connect(sockfd,(socket (const sturct sockaddr *)&serv,sizeof(serv)); 这个sizeof是serv这个里面结构的长度,因为实际中很可能某些结构中有空的项 比如gethostname(好象是这个函数得到主机的dns信息,忘记了……) 它里面的结构中允许主机的ip和主机名是多项的,但是如果不满的话就是空,那么长度可能比原来的小 所以是用sizeof 实际结构长度 我理解是酱紫的 devel : 谢谢!!我懂了。。用数据类型和用该数据类型的变量的结果一样。 以下的程序是打印出你的系统的数据类型占用的内存空间。 struct A { int a; }; int main(void) { printf(“int %d\n”,sizeof(int)); printf(“int * %d\n”,sizeof(int *)); printf(“unsigned %d\n”,sizeof(unsigned)); printf(“unsigned int * %d\n”,sizeof(unsigned int *)); printf(“long %d\n”,sizeof(long)); printf(“long * %d\n”,sizeof(long *)); printf(“unsigned long %d\n”,sizeof(unsigned long)); printf(“unsigned long * %d\n”,sizeof(unsigned long *)); printf(“char %d\n”,sizeof(char)); printf(“char * %d\n”,sizeof(char *)); printf(“unsigned char %d\n”,sizeof(unsigned char)); printf(“unsigned char * %d\n”,sizeof(unsigned char *)); printf(“struct A %d\n”,sizeof(struct A)); printf(“struct A * %d\n”,sizeof(struct A *)); return(0); } |
>> 本文固定链接: http://www.vcgood.com/archives/1445