これは C 愛好家にとっては基本的なことかもしれませんが、いくつかの C プロジェクトで見た次のパターンについて 1 つまたは 2 つの質問があります。
SomeType.h:
typedef struct SomeType *SomeTypeRef;
SomeType.m:
struct SomeType
{
int a;
int b;
};
main.m
#import "SomeType.h"
int main(int argc, const char * argv[])
{
// What can i do with you?
SomeTypeRef myTypeRef;
return 0;
}
だから、私が知る限り、プログラムの他の部分 (ここの main のような) は SomeTypeRef のみを渡すことができ、実際に SomeType 構造体を使用することはできません。
少し実験しただけでは、メインで myTypeRef を参照する方法はないようです。その構造体の定義が「隠されている」ため、これは理にかなっています。ここで私の理解は正しいですか?
最後に、SomeType.h に typedef があるとコンパイラが満足するのはなぜでしょうか? typedef している構造体については何も知りませんが、それは重要ではないと思いますか?
明確にしていただきありがとうございます。