안녕하세요~
오늘은 구조체에 대해서 알아보겠습니다
우리가 구조체를 사용하는 이유는 간단합니다
점점 복잡한 코드들을 작성하게 된다면 그만큼 변수를 선언해야할 상황들이 많아 질 것입니다 바래와 같은 상황처럼 말이죠
int main() {
int member1;
int member2;
char member3;
float member4;
int age;
char addr[100];
}
위처럼 여러가지 한 프로그램에 여러가지 기능을 넣기 위해서 변수를 여러가지로 사용을 할 수 밖에 없습니다
이렇게 된다면 내가 짜둔 코드도 보기가 어려울 것이고 난잡해서 나중에는 수정을 해야할 상황이 발생시 어디두었는지 코드도 보기가 쉽지 않을것입니다
그렇게 된다면 결국 가독성이 떨어지게 됨으로 코드도 효율을 잃게 되는 것이겠죠 그렇게 해서 우리에게 필요한 것이 구조체입니다
한 구조체에 설정한 것들을 사용할 수 있도록 구조체로 묶어 두는 형태입니다
아래는 구조체의 간단한 예시입니다
struct 구조체 이름 {
자료형 변수형 // 구조체 멤버1
자료형 변수형 // 구조체 멤버2
};
구조체를 통해서 다음과 같은 예제를 만들어 보겠습니다.
구조체를 설정하고 이후 main에서 구조체를 선언 후에 사용하였습니다
값을 넣을때에는 구조체의 변수를 가져와야 하기때문에 mem. 을 사용을 해주었습니다.
이후에 값을 넣어주고 결과값에 변수가 저장되어 출력 되는 것을 볼 수 있습니다.
이제는 typedef를 통한 struct선언을 알아보겠습니다
typedef를 선언하므로 인해서 내가 원하는 문자로 별칭을 지정하고 이후에 선언하여 사용할 수 있습니다
선언은 처음 Member로 선언 하였지만 typedef를 통해서 별칭을 member로 선언하였습니다 이 별칭을 통해서 main에서는 어떻게 선언하는지 예제와 함께 살펴보겠습니다
위처럼 이전에는 main에 struct라고 구조체임을 선언했었는데 이제는 별칭으로 선언을 하여도 프로그램에서는 구조체로 인식하고 결과값도 아무문제없이 출력하게 해줍니다
이상으로 구조체에 대해서 알아보았습니다 이제 긴 코드를 작성 할 때에도 헷갈리지 않고 작성하셨으면 좋겠습니다~
수고하셨습니다!
'프로그래밍언어 > C언어' 카테고리의 다른 글
[C언어 도전기 16편] 지역변수, 전역변수 (0) | 2021.01.19 |
---|---|
[C언어 도전기] 로또 프로그램 만들기 (0) | 2021.01.16 |
[C언어 도전기] 연습문제(5) 동전던지기, 가위바위보 (0) | 2020.12.31 |
[C언어 도전기 14편] rand (0) | 2020.12.30 |
[C언어 도전기 13편] 포인터(pointer) (0) | 2020.12.29 |