对于XCode中的其他文件,typedef和#defines是不可见的

时间:2017-10-26 21:34:06

标签: c xcode typedef

首先,我很抱歉这个头衔。我真的不知道如何以更好的方式描述我的问题。

使用XCode时,我遇到的问题是“typedefs”和“#defines”似乎只对于写入它们的文件可见。

我们假设我有三个文件。 main.c Foo.h Foo.c

main.c中:

#include <stdio.h>
#include <stdlib.h>


typedef int simpleInteger;

#include "Foo.h"

int main(int argc, const char * argv[]) {
    simpleInteger I = 22;
    printf("%d\n", Foo(I));
    return 0;
}

foo.h中:

#ifndef Foo_h
#define Foo_h

simpleInteger Foo(simpleInteger number);

#endif /* Foo_h */

foo.c的:

#include "Foo.h"

int Foo(simpleInteger number)
{
    return number*2;
}

当我尝试编译时,XCode在 Foo.h Foo.c 未知类型名称'simpleInteger'” >

为了使其工作,我必须在 Foo.h 中包含“typedef int simpleInteger”行,这对我来说似乎并不干净。但是,如果我在不使用XCode的情况下编译这些文件,它就能完美运行。

  

我如何告诉XCode不要抱怨这个并使其像任何其他编译器一样工作?

1 个答案:

答案 0 :(得分:1)

这需要在Foo.h中,而不是main.c:

typedef int simpleInteger;