typedef 질문
59
작성자 없음
5:50
제일 위에 선언 부분에
Bag이 typedef으로 데이터타입으로 정의한건지 struct 의 변수명으로 정의한건지 헷갈립니다
저렇게 하나만 쓰면 둘다 인가요?
답변 2
0
안녕하세요,
Bag는 새로운 데이터 타입입니다.
typedef struct { ... } 타입이름;
↑ ↑
구조체 정의 새로운 타입 이름
이렇게 이해하시면 됩니다.
대부분의 경우를 다 설명드리자면,
1. typedef 없이 struct만 사용하는 경우:
struct Bag {
char brand[50];
int year;
};
// 사용할 때
struct Bag myBag; // ← "struct" 키워드를 반드시 써야 함
2. typedef 사용하는 경우 (강의에 있는 코드):
typedef struct {
char brand[50];
int year;
} Bag; // ← Bag은 새로운 타입 이름
// 사용할 때
Bag myBag; // ← "struct" 없이 바로 사용 가능!
3. struct에 이름도 주고 typedef도 하는 경우:
typedef struct BagStruct {
char brand[50];
int year;
} Bag;
// 사용할 때 두 가지 방법 모두 가능
struct BagStruct myBag1; // 방법 1
Bag myBag2; // 방법 2 (더 간단)
이렇게 생각하시면 되겠습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 이진우님.
구조체와 typedef에 대한 혼란을 이해할 수 있습니다. 이를 명확히 하기 위해 C언어에서 struct와 typedef를 어떠한 방식으로 사용하는지 설명드리겠습니다.
struct와 typedef 개념
struct:
- 구조체는 여러 데이터를 하나의 그룹으로 묶어주는 역할을 합니다.
struct키워드를 사용하여 새로운 데이터 타입을 정의할 수 있습니다.
struct를 통해 정의된 구조체는 선언 시 항상struct키워드가 다시 등장해야 합니다.
- 구조체는 여러 데이터를 하나의 그룹으로 묶어주는 역할을 합니다.
struct Bag {
int itemID;
char itemName[50];
};
struct Bag bag1; // 구조체 변수 선언
typedef:
typedef는 기존 데이터 타입에 새로운 이름을 부여하여 보다 간편하게 사용할 수 있게 해줍니다. 이는 주로 코드의 가독성을 높이는 데 도움을 줍니다.
typedef struct {
int itemID;
char itemName[50];
} Bag;
Bag bag1; // typedef를 사용하여 간단하게 변수 선언 가능
일반적인 사용 예시
- 해당 구조체를 정의하면서 동시에
typedef를 사용하면,typedef로 정의된 이름(Bag)을 새로운 데이터 타입처럼 사용할 수 있습니다. 이 경우struct키워드를 생략할 수 있어 편리합니다.
추가 자료
이와 관련된 유사한 질문과 답변이 Inflearn에 있습니다:
- “18번 typedef 키워드 질문”: 구조체 선언 및
typedef사용법에 대해 다룬 게시물을 참고하시면 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
정처기 필기 준비할때 이 이론을 다시 외워도 될까요?
0
43
2
조건 반복문 질문: for 문 ?
0
59
1
정처기 26-2회. 9번 질문드립니다!
0
77
1
이론 보면서 질문이 있습니다.
0
71
2
정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문
0
86
2
유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)
0
143
2
262 정처기 실기 C언어코딩
0
45
1
정보처리기사 262 실기 Hash(해시) 질문
0
77
2
static 변수 질문입니다.
0
60
2
파이썬 4강 질문입니다.
0
67
2
모의고사 1회 3번문제
0
87
3
41강 30:10
0
66
2
이론 공부법 질문 있습니다.
0
86
2
부모의 생성자 관련 질문
0
64
2
시험지 문제에 필기해도 되나요?
0
87
3
41강 11:23
0
58
2
4강파이썬 질문입니다
0
53
2
try-catch 핸들러명
0
64
2
36강 3:48
0
62
2
35강 18:27
0
65
2
자식 코드 내 super() 생략
0
59
2
출력질문
0
73
2
31강 4:06
0
64
2
파이썬 학습자료가 강의 자료와 다릅니다.
0
94
3





