0

我正在尝试包含一个包含结构的头文件,但是当我尝试编译包含头文件的文件时,No such file or Directory出现错误。和头文件都.c在同一个目录中。

这是代码:

头文件“MyShared.h”:

#ifndef MYSHARED_H_INCLUDED
    #define MYSHARED_H_INCLUDED
    #define PERM (S_IRWRU | S_IRGRP)
    #define MySharedKey 0343
    #define SIZE 2048

    struct MyShared
    {
        char *buf[SIZE];
        int ReadfromBuf,WriteToBuf,readbytes;
    };
#endif

Mem.c包含头文件的文件:

#include <sys/shm.h>
#include "MyShared.h"

int main()
{
    MyShared *obj;

    int shmid,i,childpid;

    shmid = shmget(MySharedKey,sizeof(MyShared),NULL);

    .....
}

为什么我会收到此错误?

4

1 回答 1

1

在 C 中,结构定义不是typedef。

#include <sys/shm.h>
#include "MyShared.h"


int main()
{
struct MyShared *obj;

int shmid,i,childpid;

shmid=shmget(MySharedKey, sizeof *obj, NULL);

    .....
}

顺便说一句:我认为您不需要共享内存中的指针char *buf[SIZE]; 数组:应该是char buf[SIZE];

于 2012-12-23T15:19:12.637 回答