2013-09-04 1 views
5

Cコンパイラ(私はGCCを使用しています)は、次の処理をどのように知っていますか?C構造体がどのように参照することは可能ですか?

struct node 
{ 
    int x; 
    struct node* next; 
}; 

より正確には、node場合はまだ完全に(私たちは閉じ中括弧に達していない)、まだ定義されている、そしてどのようにコンパイラがどのように大きな構造体は、あるべき知っているのですか?

「ポインティングする」にはアドレスしか必要ではないことが分かりますが、ポインターをインクリメントするにはポインターのデータサイズが必要です。

+3

ポインタの増分は、タイプが完全に決定された後にのみ処理されます。それ以外の場合は、 '不完全な型'というエラーが表示されます。 –

答えて

9

structのサイズは重要ではなく、structへのポインタが格納されているため、structではなく、

structへのポインタをインクリメントする点では、これは、struct定義の外側で行われます。したがって、重要ではありません。

関連する問題