본문 바로가기
01.Bit 단기/C

22_구조체1

by chojju 2018. 4. 28.
반응형

#include <stdio.h>

//step1) 구조체가 없을 때 코드 구현
/*
void fun_today(int *y, int *m, int *d);
void fun_print(int y, int m, int d);

int main(int argc, char*argv[])
{
 int year;
 int month;
 int day;

 fun_today(&year, &month, &day);
 fun_print(year, month, day);


 return 0;
}

void fun_today(int *y, int *m, int *d)
{
 *y = 2016;
 *m = 7;
 *d = 4;
}

void fun_print(int y, int m, int d)
{
 printf("%d/%d/%d\n", y, m, d);
}
*/

//step2) 구조체를 활용한 코드 개선
//================== 구조체 정의 ================
// 일반적으로는 함수밖에 정의
// h파일에..

//struct : 구조체 타입 생성 키워드
//mydate : 이름(태그)
struct mydate
{
 int year;
 int month;
 int day;
};

/*
//구조체 사용 기초 문법
int main()
{
// printf("%d byte\n", sizeof(struct mydate));//12
 struct mydate m1;  //12byte
 struct mydate m2;

 m1.year = 2016;
 m1.month = 7;
 m1.day = 4;

 m2 = m1;  //맴버간 복사 이루어진다.

 printf("%d/%d/%d\n", m1.year, m1.month, m1.day);
 printf("%d/%d/%d\n", m2.year, m2.month, m2.day);

 return 0;
}
*/

void fun_today(struct mydate *y);
void fun_print(struct mydate y);
void main()
{
 struct mydate  m1;
 fun_today(&m1);
 fun_print(m1);
}
//구조체타입 포인터 변수의 역참조는
//구조체 타입이 존재한다.
void fun_today(struct mydate *y)
{
 y->year = 2016; // (*y).year = 2016;
 y->month = 7; //  (*y).month = 7;
 y->day = 4;; // (*y).day = 4;
}

void fun_print(struct mydate y)
{
 printf("%d/%d/%d\n", y.year, y.month, y.day);
}

반응형

'01.Bit 단기 > C' 카테고리의 다른 글

24_구조체포인터및인자전달  (0) 2018.04.28
23_구조체배열  (0) 2018.04.28
21_명령행인자  (0) 2018.04.28
20_문자열  (0) 2018.04.28
19_void포인터  (0) 2018.04.28

댓글