#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 |
댓글