2012-12-23 43 views
0

我想包含一个头文件,其中包含一个结构,但是当我尝试编译文件包括头文件时,我得到No such file or Directory错误。 .c和头文件都在同一个目录中。没有这样的文件或目录错误,包括头文件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); 

    ..... 
} 

为什么会出现这个错误?

+1

请加入确切的错误你的问题 –

回答

1

在C中,struct定义是而不是 typedef。

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


int main() 
{ 
struct MyShared *obj; 

int shmid,i,childpid; 

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

    ..... 
} 

BTW:我不认为你想要的指针在共享内存中的数组:char *buf[SIZE]; 大概应该是char buf[SIZE];

+0

谢谢!它工作 – Alfred

+0

这是一个错字。顺便说一句,谢谢纠正。 :) – Alfred

+0

@Alfred现在我很困惑。虽然wildplasser的观点是好的,但它们与编译器没有找到头部完全没有关系。那么这有什么问题? –

相关问题