Notice
Recent Posts
Recent Comments
Link
취미생활
[C++] 구조체로 여러 타입의 변수 묶어서 사용하기 본문
구조체(Struct)는 Class가 없는 C언어 에서는 빛과 소금이었다.
여러 변수를 필요로 하는 함수에 입력을 할 때
구조체 하나만 사용한다면 단 하나의 인자로 여러 값을 바꿀 수 있다.
예시
function(int num, char *str, float pi, char val);
여러 변수를 호출 인자로 사용하는 함수 function이 있다고 생각해보자.
이 function을 호출하기 위해선 int, char 포인터, float, char 등 여러가지 변수를 사용해야 하기 때문에,
호출할 때 마다 실수하기 쉽다.
하지만, number 라는 구조체로 이를 묶어서 한 번에 관리한다면 어떨까?
function(number val);
구조체 하나만 인자로 사용하기 때문에 함수호출시, 어려움 없이 사용할 수 있다.
그렇다면 구조체는 어떻게 사용하는 걸까?
구조체 선언
struct name {
int num;
char str[10];
float pi;
char val;
};
구조체의 선언은 위와 같다.
struct를 이용해 구조체를 선언할 수 있으며,
name부분에 원하는 구조체의 이름을 쓰면 된다.
중괄호 안에는 구조체가 포함할 변수 타입을 선언해주면 된다.
구조체 사용하기
Name a;
a.num = 1;
Name이란 이름을 가진 구조체 a를 선언한 뒤,
a의 int형 변수 num에 1을 대입하는 코드다.
구조체 변수안에 있는 변수를 사용하기 위해서는
"."를 이용해 구조체의 변수임을 컴파일러에게 알려준다.
C++는 구조체 사용하기 참 편한 것 같다.
C에서는 구조체를 선언해서 사용할 시,
struct name a;
a.num;
struct를 구조체 이름 앞에 붙여줘야 했다.
이런 부분이 상당히 귀찮아서 Typedef를 이용해 새로운 데이터 타입을 정의해서 사용했지만,
C++는 그럴 필요가 없어졌다.
그냥 구조체 이름을 통해 선언할 수 있다.
이 얼마나 좋은 변화인가.
'컴퓨터 > C++' 카테고리의 다른 글
[C++] 구조체 비트 필드로 비트 단위 변수 사용하기 (0) | 2022.09.05 |
---|---|
[C++] 접근 제한자의 범위 (0) | 2020.07.16 |
[C++] 함수 만들고 호출하기 (0) | 2020.07.16 |
[C++] 입력 받고 출력 하기 (0) | 2020.07.16 |
[C++] 스터디 일지 | 기초중의 기초 Hello world! 띄우기 (0) | 2020.07.16 |
Comments