这对于 C 爱好者来说可能是基本的,但对于我在一些 C 项目中看到的以下模式,我有一两个问题:
SomeType.h:
typedef struct SomeType *SomeTypeRef;
SomeType.m:
struct SomeType
{
int a;
int b;
};
主文件
#import "SomeType.h"
int main(int argc, const char * argv[])
{
// What can i do with you?
SomeTypeRef myTypeRef;
return 0;
}
所以据我所知,程序的其他部分(比如这里的 main)只能绕过 SomeTypeRef,实际上不能使用 SomeType 结构,是吗?
仅通过一些试验,似乎没有办法在 main.xml 中尊重 myTypeRef。这是有道理的,因为该结构的定义是“隐藏的”。我的理解在这里正确吗?
最后,为什么编译器在看到 SomeType.h 中的 typedef 时会很高兴?它对它所定义的结构一无所知,但我想这并不重要?
感谢您的任何澄清。