구조체에 대한 몇가지 질문...
글쓴이: 익명 사용자 / 작성시간: 금, 2002/08/23 - 9:29오후
안녕하셔요? 궁금하게 있어서 그러는데요. 오늘 C로 구현한 알고리즘이
란 책을 사서 보고 있는데 신기한 문법이 나와서요.
typedef struct ListElmt_{
void *data;
struct ListElmt_ *next;
}ListElmt;
이렇게 구조체가 정의 되어 있는데 ListElmt_ 에서 마지막 _(언더바)의
의미는 뭔가요? 별 필요도 없는거 같은데... 또한 마지막에 이 구조체의
tag명을 ListElmt로 정해주고 있는데 처음 tag 선언부에 ListElmt_ 라고
해준 이유가 무엇인가요?
Forums:
Re: 구조체에 대한 몇가지 질문...
네... 뒤의 언더바는 전혀 의미가 없습니다. 그냥 멋지게 보이기 위해서
가 아닐까요... 그리고 앞의 ListElmt_ 라는 태그는 원래 이렇게 쓸 수
있습니다.
struct ListElmt_
{
어쩌구
};
이렇게 선언한 경우 원래 C에서는 정확하게 struct ListElmt_ 이렇게
적어줘야 사용할 수 있습니다.
두번째는 struct ListElmt_ 이렇게 쓰면 귀찮으니 이 struct 조차도
빼고 사용하려고 typedef 를 써서 새로운 타입을 하나 만들어 주는
겁니다. 이럴 경우
typedef struct ListElmt_
{
어쩌구
}ListElmt;
이렇게 하면 struct ListElmt_ 대신에 ListElmt 만 쓰겠다 이 소리죠.
그럼 고운 하루되시길...
ps. 정확히 기억이 안나는데, C++에서는 그냥 뒤에것만 써도 되는걸로
기억합니다. c에서는 안돌아가죠... 음냐 맞던가... 하여튼 이런 차이가
C와 C++에 존재합니다.
초보 wrote..
안녕하셔요? 궁금하게 있어서 그러는데요. 오늘 C로 구현한 알고리즘이
란 책을 사서 보고 있는데 신기한 문법이 나와서요.
typedef struct ListElmt_{
void *data;
struct ListElmt_ *next;
}ListElmt;
이렇게 구조체가 정의 되어 있는데 ListElmt_ 에서 마지막 _(언더바)의
의미는 뭔가요? 별 필요도 없는거 같은데... 또한 마지막에 이 구조체 의
tag명을 ListElmt로 정해주고 있는데 처음 tag 선언부에 ListElmt_ 라 고
해준 이유가 무엇인가요?
Re^2: 구조체에 대한 몇가지 질문...
typedef struct ListElmt_{
void *data;
struct ListElmt_ *next;
}ListElmt;
이건 아래와 같은거 아닌가요?
struct ListElmt_{
void *data;
struct ListElmt_ *next;
}ListElmt;
typedef ListElmt_ ListElmt;
구조체 변수를 선언한 것이 아니라 tag명만 바꿔 준
것이죠.
Re^3: 구조체에 대한 몇가지 질문...
struct ListElmt_{
void *data;
struct ListElmt_ *next;
} ListElmt;
typedef struct ListElmt_ ListElmt;
는 문법에러 입니다.
이미 ListElmt라는 심볼이 등록되었고, 이것을 다시 typedef할 수는 없습니다.
struct ListElmt_{
void *data;
struct ListElmt_ *next;
};
typedef struct ListElmt_ ListElmt;
이렇게 하셔야 겠죠...
불량청년 wrote..
typedef struct ListElmt_{
void *data;
struct ListElmt_ *next;
}ListElmt;
이건 아래와 같은거 아닌가요?
struct ListElmt_{
void *data;
struct ListElmt_ *next;
}ListElmt;
typedef ListElmt_ ListElmt;
구조체 변수를 선언한 것이 아니라 tag명만 바꿔 준
것이죠.
댓글 달기