반응형
C언어 문법 함수 반환값으서의 구조체
기본 자료형이랑 똑같습니다. int형 변수를 인자로 전달할 수 있고, 반환값으로도 설정할 수 있듯이 구조체 변수도 마찬가지입니다. 간단한 예제를 보겠습니다.
date_t get_dday(void) // 반환값이 구조체 date_t형
{
date_t date;
date.year = 2043;
date.month = 10;
date.day = 1;
return date;
}
//main 함수에서
date_t date;
date = get_dday(); // 대입 가능
C언어에서 함수는 반환값 한 개입니다. 그래서 여러 값을 반환하고 싶으면 구조체를 반환하면 됩니다. 구조체를 반환하면 실질적으로 여러 개의 값을 반환하는 격이 되니까요.
date = get_dday(); 이 부분을 보면 구조체 변수 대상으로 대입 연산이 가능하다는 것을 알 수 있습니다.
date_t date1;
date_t date2;
date2 = date1;
위 코드를 실행하면 각 멤버 변수를 돌아가며 하나씩 대입한다고 보면 됩니다.
어떤 컴파일러들은 메모리를 통째로 복사하기 합니다.
mempy() 라는 함수인데 이 글에서 다루었습니다.
sizeof로 크기를 구할 수 있습니다.
위 예제에서 다룬 date_t 구조체는 sizeof(int)+sizeof(int)+sizeof(int) 로 12바이트입니다.
-----------------------------------
-----------------------------------
반응형
'컴퓨터 공학 > C, C++' 카테고리의 다른 글
[ C ]커스텀 자료형 이해하기6_열거형(Enumerated Type)란? 개념/선언방법 (406) | 2020.07.24 |
---|---|
[ C ]커스텀 자료형 이해하기5_공용체(Union Type)이란? 정의/사용하는 이유 (404) | 2020.07.24 |
[ C ]커스텀 자료형 이해하기3_구조체 배열, 포인터 (374) | 2020.07.24 |
[ C ]커스텀 자료형 이해하기2_typedef이란? typedef사용법 (403) | 2020.07.24 |
[ C ]커스텀 자료형 이해하기1_구조체란? 정의/선언/용도/초기화 (402) | 2020.07.24 |
댓글