반응형
요약
- 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)도 마찬가지)
반응형
'공부 > C언어, C++' 카테고리의 다른 글
[C언어/C++] VS Code 자동 세미콜론(;) 추천 익스텐션 Colonize (0) | 2023.07.24 |
---|---|
[C언어/C++] VS Code 서식 자동 정렬시 포인터 선언(*) 위치 바꾸기(서식 지정 규칙 바꾸기) (0) | 2023.07.24 |
[C언어/C++] struct 어떻게 쓰는거지? 구조체(struct) 간단 비교 예제 (0) | 2023.03.16 |
[C언어/C++] VS code 한글 깨짐 해결 방법(UTF-8 -> EUC-KR 인코딩 변경) (0) | 2023.03.15 |
[C언어/C++] Visual Studio link.exe 종료되었습니다 or exe 쓰기용으로 열 수 없습니다 에러 오류 해결법 (1) | 2023.03.14 |