강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

(2025) 일주일만에 합격하는 정보처리기사 실기

typedef 키워드

typedef 질문

해결된 질문

작성

·

22

0

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언어에서 structtypedef를 어떠한 방식으로 사용하는지 설명드리겠습니다.

structtypedef 개념

  1. struct:
    • 구조체는 여러 데이터를 하나의 그룹으로 묶어주는 역할을 합니다. struct 키워드를 사용하여 새로운 데이터 타입을 정의할 수 있습니다.
    • struct를 통해 정의된 구조체는 선언 시 항상 struct 키워드가 다시 등장해야 합니다.
   struct Bag {
       int itemID;
       char itemName[50];
   };
   
   struct Bag bag1; // 구조체 변수 선언
  1. typedef:
    • typedef는 기존 데이터 타입에 새로운 이름을 부여하여 보다 간편하게 사용할 수 있게 해줍니다. 이는 주로 코드의 가독성을 높이는 데 도움을 줍니다.
   typedef struct {
       int itemID;
       char itemName[50];
   } Bag;

   Bag bag1; // typedef를 사용하여 간단하게 변수 선언 가능

일반적인 사용 예시

  • 해당 구조체를 정의하면서 동시에 typedef를 사용하면, typedef로 정의된 이름(Bag)을 새로운 데이터 타입처럼 사용할 수 있습니다. 이 경우 struct 키워드를 생략할 수 있어 편리합니다.

추가 자료

이와 관련된 유사한 질문과 답변이 Inflearn에 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기