목차
c언어에서의 구조체와 공용체
1 구조체(structure)란?
2 구조체의 일반적인 형식
3 구조체 변수의 선언
4 구조체 변수의 초기화
5 구조체 배열 변수의 선언
6 구조체 포인터 변수의 선언
7 구조체와 함수
8 공용체(union)
9 새로운 데이터 형 정의(typedef)
1 구조체(structure)란?
2 구조체의 일반적인 형식
3 구조체 변수의 선언
4 구조체 변수의 초기화
5 구조체 배열 변수의 선언
6 구조체 포인터 변수의 선언
7 구조체와 함수
8 공용체(union)
9 새로운 데이터 형 정의(typedef)
본문내용
g2 -> kumaek);
}
7 구조체와 함수
구조체와 관련해서 함수의 인수로 넘길 수 있는 것은 구조체의 멤버, 구조체 멤버의 주소, 구조체, 구조체의 주소 등이 있다.
함수의 번환 값으로 구조체를 받을 수 있다.
[ 예제 9-3.c]
#include
main()
{
int a = - 123;
long b = 1234567;
float c = 1234.5678;
char d = \'A\';
char *s = \"String\";
printf(\"10진 정수 = %d, 8진수 = %o, 16진수 =
printf(\"부호없는 정수 =
printf(\"배정도형 10진 정수 =
printf(\"한개의 문자 =
printf(\"문자열 =
printf(\"부동 소수점을 지수형으로 =
printf(\"부동 소수점을 소수형으로 =
}
8 공용체(union)
공용체는 하나의 기억 장소르 하나 이상의 데이터 형(type)이 공유하는 변수를 선언할 때 사용한다
기억 장소의 할당은 공용체 내의 가장 큰 멤버에 맞게 할당한다.
공용체의 형식
UNION 공용체면 {
멤버1의 선언;
멤버2의 선언;
.
.
멤버n의 선언;
};
[ 예제 9-4.c]
# include
union ab {
char a;
int b;
long c;
};
main()
{
union ab u;
u.c = (iong)0x12345678;
printf(\"u.c =
printf(\"u.b =
printf(\"u.a =
}
[ 예제 9-5.c]
# include
struct sb {
char a1;
int b1;
float c1;
};
union ub {
char a2;
int b2;
float c2;
}
main()
{
int scount, ucount ;
scount = sizeof(struct sb);
ucount = sizeof(union);
printf(\"struct sizeof =
printf(\"union sizeof =
}
9 새로운 데이터 형 정의(typedef)
이미 정의된 데이터 형(data type)을 새 이름으로 선언할 때 사용한다.
구조체 변수와 같이 긴 이름의 변수를 새로운 변수의 이름으로 선언할 때 편리하다.
typedef를 이용해서 선언된 데이터 형은 일반적인 데이터 형(char, int, float)
일반적인 데이터 형을 typedef를 사용해서 저의 하는 경우
예) typedef int integer --> integer는 int와 동일
typedef char character --> character는 char과 동일
typedef char * string --> string는 char * 와 동일
구조체를 typedef를 사용해서 정의하는 경우
예) typedef struct kagae {
char * i1ja;
char * jukyo;
short gb;
long kumaek;
} DATA;
[ 예제 9-6.c]
# include
typedef struct kagae{
char * i 1ja;
char * jukyo;
short gb;
long kumaek;
} DATA;
main()
{
DATA kg[2] = {{\"96-10-01\", \"급여\", 1, 900000},
{\"96-10-02\", \"외식비\", 70000}};
struct_print_test(kg[0]);
struct_print_test(kg[1]);
}
struct_print_test(s_kg)
DATA s_kg;
{
printf(\"%s
if (s_kg.gb == 1)
printf(\" 입금 \");
else
printf(\" 출금 \");
printf(\"
}
}
7 구조체와 함수
구조체와 관련해서 함수의 인수로 넘길 수 있는 것은 구조체의 멤버, 구조체 멤버의 주소, 구조체, 구조체의 주소 등이 있다.
함수의 번환 값으로 구조체를 받을 수 있다.
[ 예제 9-3.c]
#include
main()
{
int a = - 123;
long b = 1234567;
float c = 1234.5678;
char d = \'A\';
char *s = \"String\";
printf(\"10진 정수 = %d, 8진수 = %o, 16진수 =
printf(\"부호없는 정수 =
printf(\"배정도형 10진 정수 =
printf(\"한개의 문자 =
printf(\"문자열 =
printf(\"부동 소수점을 지수형으로 =
printf(\"부동 소수점을 소수형으로 =
}
8 공용체(union)
공용체는 하나의 기억 장소르 하나 이상의 데이터 형(type)이 공유하는 변수를 선언할 때 사용한다
기억 장소의 할당은 공용체 내의 가장 큰 멤버에 맞게 할당한다.
공용체의 형식
UNION 공용체면 {
멤버1의 선언;
멤버2의 선언;
.
.
멤버n의 선언;
};
[ 예제 9-4.c]
# include
union ab {
char a;
int b;
long c;
};
main()
{
union ab u;
u.c = (iong)0x12345678;
printf(\"u.c =
printf(\"u.b =
printf(\"u.a =
}
[ 예제 9-5.c]
# include
struct sb {
char a1;
int b1;
float c1;
};
union ub {
char a2;
int b2;
float c2;
}
main()
{
int scount, ucount ;
scount = sizeof(struct sb);
ucount = sizeof(union);
printf(\"struct sizeof =
printf(\"union sizeof =
}
9 새로운 데이터 형 정의(typedef)
이미 정의된 데이터 형(data type)을 새 이름으로 선언할 때 사용한다.
구조체 변수와 같이 긴 이름의 변수를 새로운 변수의 이름으로 선언할 때 편리하다.
typedef를 이용해서 선언된 데이터 형은 일반적인 데이터 형(char, int, float)
일반적인 데이터 형을 typedef를 사용해서 저의 하는 경우
예) typedef int integer --> integer는 int와 동일
typedef char character --> character는 char과 동일
typedef char * string --> string는 char * 와 동일
구조체를 typedef를 사용해서 정의하는 경우
예) typedef struct kagae {
char * i1ja;
char * jukyo;
short gb;
long kumaek;
} DATA;
[ 예제 9-6.c]
# include
typedef struct kagae{
char * i 1ja;
char * jukyo;
short gb;
long kumaek;
} DATA;
main()
{
DATA kg[2] = {{\"96-10-01\", \"급여\", 1, 900000},
{\"96-10-02\", \"외식비\", 70000}};
struct_print_test(kg[0]);
struct_print_test(kg[1]);
}
struct_print_test(s_kg)
DATA s_kg;
{
printf(\"%s
if (s_kg.gb == 1)
printf(\" 입금 \");
else
printf(\" 출금 \");
printf(\"
}
소개글