기본적으로 struct는 구조를 정의하는 데 사용됩니다. 그러나 그것을 사용하려면 C에서 struct 키워드를 사용해야 합니다. typedef 키워드를 사용하고 새 이름을 사용하면 struct 키워드를 작성하지 않고도 해당 이름으로 struct를 사용할 수 있습니다.
C++에서는 'struct'와 'typedef struct' 사이에 차이가 없습니다. 왜냐하면 C++에서는 이름이 다른 선언에 의해 숨겨지지 않는 한 모든 struct/union/enum/class 선언이 암시적으로 typedef된 것처럼 작동하기 때문입니다. 같은 이름으로.
typedef가 앞으로 선언될 수 없다는 미묘한 차이점이 하나 있습니다. 따라서 typedef 옵션의 경우 typedef가 포함된 파일을 포함해야 어디에서나 사용됩니다.