首先,我很抱歉这个头衔。我真的不知道如何以更好的方式描述我的问题。
使用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不要抱怨这个并使其像任何其他编译器一样工作?
答案 0 :(得分:1)
这需要在Foo.h中,而不是main.c:
typedef int simpleInteger;