2

これは 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 している構造体については何も知りませんが、それは重要ではないと思いますか?

明確にしていただきありがとうございます。

4

2 に答える 2