ฉันกำลังพยายามประกาศโครงสร้างที่ขึ้นอยู่กับโครงสร้างอื่น ฉันต้องการใช้sizeof
เพื่อความปลอดภัย / อวดรู้
typedef struct _parent
{
float calc ;
char text[255] ;
int used ;
} parent_t ;
ตอนนี้ฉันต้องการประกาศโครงสร้างchild_t
ที่มีขนาดเท่ากับparent_t.text
.
ฉันจะทำเช่นนี้ได้อย่างไร? (รหัสหลอกด้านล่าง)
typedef struct _child
{
char flag ;
char text[sizeof(parent_t.text)] ;
int used ;
} child_t ;
ฉันลองหลายวิธีด้วยparent_t
และstruct _parent
แต่คอมไพเลอร์ของฉันไม่ยอมรับ
เคล็ดลับนี้ดูเหมือนจะใช้ได้:
parent_t* dummy ;
typedef struct _child
{
char flag ;
char text[sizeof(dummy->text)] ;
int used ;
} child_t ;
เป็นไปได้ไหมที่จะประกาศchild_t
โดยไม่ต้องใช้dummy
?