मूल रूप से struct का उपयोग एक संरचना को परिभाषित करने के लिए किया जाता है। लेकिन जब हम इसका उपयोग करना चाहते हैं तो हमें C में struct कीवर्ड का उपयोग करना होता है। यदि हम typedef कीवर्ड का उपयोग करते हैं, तो एक नया नाम, हम उस नाम से struct का उपयोग कर सकते हैं, बिना struct कीवर्ड लिखे।
C++ में, 'struct' और 'typedef struct' में कोई अंतर नहीं है क्योंकि, C++ में, सभी struct/union/enum/class घोषणाएं ऐसा व्यवहार करती हैं जैसे वे निहित रूप से typedef'ed हैं, जब तक कि नाम उसी नाम की किसी अन्य घोषणा द्वारा छिपा नहीं जाता।
हालांकि एक सूक्ष्म अंतर है कि typedefs को फॉरवर्ड डिक्लेयर नहीं किया जा सकता। इसलिए typedef विकल्प के लिए, आपको typedef वाली फ़ाइल को उसके कहीं भी उपयोग करने से पहले शामिल करना होगा।