반응형

요약

  • C언어 문법에서 구조체 선언 때마다 struct를 쓰기 귀찮다면 구조체 정의 때 typedef 사용
  • C++ 문법에서는 구조체 정의 때 typedef를 안 붙여줘도 구조체 선언 때 Struct 이름으로만 선언할 수 있다. (클래스(Class)도 마찬가지)

 

typedef struct 정의와 struct 정의

차이는 typedef는 별명을 붙여준다.

주로 쓰게될 별명을 Student(코드 9줄) 정의 때만 쓰는 본명은 언더바를 붙여 _Student(코드 3줄)로 정의한다.

 

typedef struct 언제 써야 하나?

왼쪽은 C언어 파일, 오른쪽은 C++ 파일이다.

 

왼쪽 C언어 문법에서는 구조체 정의 때 "struct People"(코드 11줄)로 정의하게 되면 구조체 선언 시 "struct People people"(코드 23줄)과 같이 struct를 붙여줘야 하는데 "typedef struct _Student"(코드 3줄)와 같이 typedef를 붙여주어 정의하면 선언 시 "Student student"(코드 21줄)로 struct를 안 붙이고 선언할 수 있다. 하지만 typedef 없이 정의(코드 11줄) 했는데 Struct 이름만으로 선언(코드 24줄) 하려고 하면 문법상 오류로 표시된다.

 

하지만 오른쪽 C++ 문법에서는 구조체 정의 때 typedef를 안 붙여줘도 구조체 선언 때 Struct 이름으로만 선언할 수 있다. (클래스(Class)도 마찬가지)

 

반응형

+ Recent posts