因此,如果我们在main之前声明和定义一个struct,并希望在与此结构位于同一根目录的其他文件中使用此结构,我们是否需要在该文件中再次声明它?特别是我想要共享一个数组的内存,这个数组的元素是结构,所以我需要在另一个文件中使用shm_get,我需要再次声明这些结构吗?
顺便说一下,它是用C语言写的吗?
代码将如下所示:
typedef struct {
char y1;
char y2;
char y3;
int x;
} itemB;
int main(){...
itemB* BufferB;然后我分享这段记忆
shmem2 = shm_get(542421, (void**)&BufferB, 30*sizeof(itemB));因此,如果我编写另一个想要共享结构的文件,我知道应该再次声明BufferB,并使用相同的初始键再次调用shm_get,但是我应该再次声明结构吗?在哪里呢?
发布于 2015-03-02 10:41:38
如果仅使用指向结构的指针,则结构声明不必可见,但它必须可见才能使sizeof(itemB)正常工作,或者使您能够按名称访问任何结构成员。
如果在多个文件中需要结构定义,那么通常将该定义放在一个称为头文件的公共文件中,该文件是从需要查看定义的文件中提取的#included。
可以将定义复制粘贴到需要它的任何位置,但这会带来一个定义被更新而另一个定义没有保持同步的风险,这将违反一个定义规则。
https://stackoverflow.com/questions/28801682
复制相似问题