본문 바로가기
컴퓨터 공학/C, C++

[ C ]커스텀 자료형 이해하기4_함수 반환값으서의 구조체

by hahehohoo 2020. 7. 24.
반응형

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언어 문법 총정리

목록 보러가기 

-----------------------------------

 

 

 

반응형


댓글