2013-09-04 6 views
5

Bir C derleyici (GCC'yi kullanıyorum) aşağıdakilerle ne yapacağını nasıl biliyor?Bir C yapısının kendisini referans göstermesi nasıl mümkündür?

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

Daha doğrusu, node eğer henüz tamamen (biz kapama küme ayracı ulaşamamış) henüz tanımlanacak olan, o zaman nasıl derleyici ne kadar büyük bir yapı olması gerektiğini biliyor? Ben "işaret" olduğunu fark ederken

sadece işaretçileri artan bu işaret verinin boyutunu gerektirir, bir adres gerektirir.

+3

İşaretçi artımları yalnızca tür (ler) tamamen belirlendikten sonra işlenir. Aksi takdirde 'eksik türler' ile ilgili hatalar alırsınız. –

cevap

9

struct'un boyutu, struct'un bir işaretçisi olarak struct'un kendisinde değil, depolanmakta olduğu için önemli değildir. struct için işaretçileri artan açısından

; Bu struct tanımının dışında yapılır, bu yüzden, önemli değildir.

İlgili konular