1. [C 언어] 구조체 정의, 구조체 선언 비교
ㅇ 구조체 정의 : 구조체 구성 정보를 자세하게 컴파일러에게 알려 줌
ㅇ 구조체 선언 : 구조체 변수를 만들어 실제 기억 공간을 확보/할당하게 함
2. [C 언어] 구조체를 정의하는 형식
ㅇ 구조체 정의를 하는 형식 둘(2)
* struct `구조체 태그명` 바로뒤에,
. 구조체 멤버들이 중괄호 { }로 둘러싸여 열거 됨
- ① 구조체 태그명(structure tag)을 사용하는 정의 형식
struct 구조체태그명 {
구조체 멤버 1;
구조체 멤버 2;
...;
} ;
- ② 구조체 태그명(structure tag)을 사용 않는 정의 형식 (익명 구조체, Anonymous Struct)
struct {
구조체 멤버 1;
구조체 멤버 2;
...;
} 구조체변수 1, 구조체변수 2 ;
. 한편, 이 형식은, 구조체 선언,정의를 동시에 같이 하는 것임
3. [C 언어] 구조체 변수를 선언하는 형식
ㅇ (C 언어의 경우) struct 구조체태그명 구조체변수;
- (실제 기억 공간 확보)
. 이전에 정의된 구조체 형식을 갖는 구조체 태그명으로, 구조체 변수를 선언 함
- (추상자료형 생성)
. 사실상, `struct 구조체태그명`에 의해 새롭게 데이터형을 만드는 것임
ㅇ (C++ 언어의 경우) 구조체태그명 구조체변수; // C++은, struct 키워드 생략 (간결함)
4. [C 언어] 구조체 태그명 (구조체 이름)
ㅇ 구조체 자료형으로 선언됨을 알려주는 명칭
- 여러 구조체들을 서로 구별할 수 있게하는 식별자 역할
5. [C 언어] 구조체 별칭
ㅇ 구조체 별칭으로 새로운 자료형을 만듬
ㅇ 구조체 별칭에 의한 정의
- typedef struct (구조체명칭 생략가능) { 자료형 멤버명; } 구조체별칭;
. 여기서, typedef는, 기존의 자료형으로부터 유도된 새로운 자료형을 만들 때 사용되는 키워드
- 例) typedef struct {
int num;
char name[10];
} Student;
ㅇ 구조체 별칭에 의한 선언
- 구조체별칭 구조체변수명;