//두 점의 위치로부터 거리를 계산하는 프로그램으로 구조체를 초기화하여 사용한다.
#include <stdio.h>
#include <math.h> //리눅스에서 gcc 컴파일 할 때 -lm을 끝에 입력
typedef struct
{
int x, y;
}POINTER;
int main()
{
POINTER p1 = {0, 0}, p2 = {1, 1}; //구조체 변수의 초기화
double distance, px, py;
px = p2.x - p1.x;
py = p2.y - p1.y;
distance = sqrt(px * px + py *py);
printf("distance : %6.3f\n", distance);
return 0;
}
POINTER p1 = {0, 0}, p2 = {1, 1};
변수 p1과 p2는 구조체 변수이면서 선언과 동시에 초기값이 주어졌다. 이 때 구조체 필드의 값은 중괄호{} 내에 콤마로 구분되어 초기화되었다. 초기값의 값은 구조체 맴버릐 자료형과 일치되어야 한다.
구조체의 경우는 배열의 경우와 달리 하나의 구조체 변수가 다른 구조체 변수의 값을 부여받을 수 있다. 즉, 구조체 변수 내의 멤버들은 다른 구조체 변수가 가지는 멤버들의 값을 한꺼번에 부여받을 수가 있는 것이다.
p1 = p2;
와 같이 동일한 구조체인 경우 p1 변수는 p2변수의 값의 값을 받을 수 있다.
'C 언어 > 임베디드 C' 카테고리의 다른 글
구조체를 가리키는 포인트변수 (0) | 2011.07.07 |
---|---|
구조체의 배열 (0) | 2011.07.07 |
2차원 배열을 초기화하여, 화면에 출력 (0) | 2011.07.01 |
버블 정렬 (0) | 2011.07.01 |
리다이렉션(redirection) (0) | 2011.06.29 |