Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ความแตกต่างระหว่าง struct และ typedef struct ใน C++


ใน C++ ไม่มีความแตกต่าง ระหว่าง struct และ typedef struct เพราะ C++ ถือว่า struct/union/enum/class declarations ทั้งหมดถูก typedef แบบ implicit แล้ว (ตราบใดที่ชื่อไม่ถูกซ่อนโดย declaration อื่น)

ข้อแตกต่างเล็กน้อย: typedef ไม่สามารถ forward declare ได้ ต้อง include ไฟล์ที่มี typedef ก่อนใช้งานเสมอ

// C++: ทั้งคู่นี้เทียบเท่ากัน
struct MyStruct { int x; };
typedef struct MyStruct { int x; } MyStruct; // เหมือนกันใน C++

ใน C ภาษาต้นแบบ จะต้องใช้ typedef struct เพื่อใช้ชื่อโดยไม่ต้องพิมพ์ struct ทุกครั้ง