컴퓨터/C
C언어에서는 struct라는 키워드를 이용해서 구조체 즉 사용자가 원하는 자료형을 만들 수 있습니다.
구조체를 사용하면 여러 자료형들을 조합하여 자신이 원하는 자료형을 만들고 사용할수 있습니다.
여러 자료형을 묶어서 하나의 자료형으로 만든다는 것은 컴퓨터에 입장에서는 별반 차이가 없을 수 있지만, 사람에게는 엄청난 이점으로 다가옵니다.
예를 들어 게임의 플레이어의 직업을 만드는 프로그래밍을 한다고 가정해 보겠습니다.
4가지의 직업과 각각의 직업에는 직업명, 공격력, 체력이 있다고 가정해 보도록 하겠습니다.
이전에 배운 기술들을 종합하여 프로그래밍을 하면 다음과 같이 할 수 있을 것입니다.
char name1 = "전사";
int att1 = 10;
int HP1 = 200;
char name2 = "도적";
int att2 = 20;
int HP2 = 100;
char name3 = "궁수";
int att3 = 15;
int HP3 = 150;
배열을 사용하든 위의 방식으로 사용하든 각각의 직업명, 공격력, 체력을 선언해 주어야 됩니다. 수가 많아질수록 선언하는 것도 번거롭고 접근하여 사용하는 것 또한 힘이 듭니다.
하지만 직업별로 묶은 자료형을 만든다면 조금 더 사용자가 편리하게 접근하고 사용할 수 있을 것입니다.
그럼 sturct 키워드를 사용하여 사용자 정의 자료형을 만들어 보도록 합시다.
struct 구조체명{
맴버변수
맴버변수
};
struct Job {
char name[10];
int att;
int HP;
};
사용자 정의 자료형을 만들었으면 이제 실제 변수로 사용을 해보도록 하겠습니다.
struct 구조체명 변수명;
struct Job job;
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
struct Job
{
char name[10];
int att;
int HP;
};
int main()
{
struct Job job;
strcpy(job.name, "전사");
job.att = 10;
job.HP = 200;
return 0;
}
상기 소스코드처럼 하면 job이라는 구조체 변수를 통해 직업과, 공격력, 체력을 한 번에 담을 수 있는 사용자 정의 자료형이 됩니다.
배열은 자료형의 묶음이라고 했습니다. 당연히 사용자 정의 자료형인 구조체 또한 배열화 하여 선언할 수 있습니다.
그럼 배열의 형태로 구조체 변수를 선언하여 맨 위의 질문 예제를 완성해보며 본문을 마무리하도록 하겠습니다.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
struct Job
{
char name[10];
int att;
int HP;
};
int main()
{
struct Job job[3];
strcpy(job[0].name, "전사");
job[0].att = 10;
job[0].HP = 200;
strcpy(job[1].name, "도적");
job[1].att = 20;
job[1].HP = 100;
strcpy(job[2].name, "궁수");
job[2].att = 15;
job[2].HP = 150;
for (int i = 0; i < 3; i++)
{
printf("직업 : %s\n", job[i].name);
printf("공격력 : %d\n", job[i].att);
printf("체력 : %d\n", job[i].HP);
printf("\n");
}
return 0;
}
C 언어 - 구조체 포인터 (0) | 2021.06.23 |
---|---|
C 언어 - typedef 키워드 (0) | 2021.06.22 |
C 언어 -포인터와 배열 (0) | 2021.06.21 |
C 언어 - const 키워드 (0) | 2021.06.18 |
C 언어 - 형변환(Casting) (0) | 2021.06.17 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet