반응형
구조체
C언어의 기본 타입을 가지고 새로 정의할 수 있는 사용자 정의 타입
구조체는 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있다.
배열이 같은 타입의 변수 집합이라고 한다면, 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸다.
이때 구조체를 구성하는 변수를 구조체의 멤버 또는 멤버 변수라고 칭한다.
예제
struct computer
{
char cpu[25];
char motherboard[30];
int gpu;
} desktop;
typedef
설명1
이미 존재하는 타입에 새로운 이름을 붙일 때 사용한다.
구조체 변수를 선언하거나 사용할 때에는, 매번 struct 키워드를 사용하여 구조체임을 알려야 한다.
하지만 typedef를 이용하여 구조체에 새로운 이름을 선언(=지정)하면 매번 struct 키워드를 사용하지 않아도 된다.
설명2
typedef 예약어는 저장소 클래스 지정자 중 하나.
typedef는 Type Define의 약어로, '형식을 정의하라' 라는 뜻을 담고 있다.
구조체에 사용되는 struct는 형식 지정자에 포함되어있습니다.
struct는 형식을 지정해주는 것.
typedef는 형식을 정의해주는 것.
struct로 구조체를 만들면 하나의 형식을 만드는 것
typedef는 '형식을 지정해주는 것'
char, int 등의 자료형을 하나로 묶어서 'desktop 자료형이다라고 지정'
예제
#include <stdio.h>
typedef int Onething; //자료형 재정의
int main()
{
Onething largeA; //재정의된 자료형 사용
largeA = 10;
printf("%d", largeA);
return 0;
}
예제2
typedef를 사용해서 구조체를 만들게 되면 구조체 변수를 만드는 것과 비슷하게 된다.
하지만 typedef를 사용해서 만들게 되면 구조체 변수가 아니라 재정의한 형식의 이름을 뜻하게 된다.
#include <stdio.h>
typedef struct computer
{
char cpu[25];
char motherboard[30];
int gpu;
}Desktop;
int main()
{
Desktop mine = {"i9-9999k", "BM-123", 1};
printf("%s %s %d", mine.cpu, mine.motherboard, mine,gpu);
//Desktop.cpu 이런 게 불가능 함
}
반응형
'Language > C' 카테고리의 다른 글
C언어 argc, argv 정리 (0) | 2024.08.03 |
---|---|
[C언어]11.공용체(union), 열거형(enum) (0) | 2023.12.15 |
[C언어]9. 포인터 (0) | 2023.12.13 |
[C언어]8. 함수 (0) | 2023.12.12 |
3.16 스터디 내용 (0) | 2023.03.18 |