c – sizeof在编译不同程序时返回结构的不同值
发布时间:2020-12-16 10:42:51 所属栏目:百科 来源:网络整理
导读:我有2个共享头文件的程序.此头文件定义具有少量成员的结构.然后是#define:#define STRUCTURE_SIZE sizeof(OUR_STRUCTURE). 然后在共享内存中使用此结构,STRUCTURE_SIZE用于shmget()的size参数. 不幸的是,对于一个程序,STRUCTURE_SIZE最终为20758,而在另一个
我有2个共享头文件的程序.此头文件定义具有少量成员的结构.然后是#define:#define STRUCTURE_SIZE sizeof(OUR_STRUCTURE).
然后在共享内存中使用此结构,STRUCTURE_SIZE用于shmget()的size参数. 不幸的是,对于一个程序,STRUCTURE_SIZE最终为20758,而在另一个程序中,它最终为20764.因此,当第二个程序试图获取共享内存时,shmget()返回EINVAL. uname -a: Linux机器2.6.30.10-105.2.23.fc11.i686.PAE#1 SMP 2月11日07:05:37 UTC 2010 i686 i686 i386 GNU / Linux g –version: g(GCC)4.4.1 20090725(红帽4.4.1-2) 解决方法
一些可能性:
>您正在使用不同的编译器和/或编译器开关编译这两个程序 (注意:最后两点可以递归地应用于问题结构中使用的任何其他结构.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |