ใน 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 ทุกครั้ง