본문 바로가기

C 언어/임베디드 C

구조체의 초기화


//두 점의 위치로부터 거리를 계산하는 프로그램으로 구조체를 초기화하여 사용한다.

#include
 <stdio.h>
#include <math.h>  //리눅스에서 gcc 컴파일 할 때 -lm을 끝에 입력

typedef struct
{
  int x, y;
}POINTER;

int main()
{
  POINTER p1 = {00}, p2 = {11};    //구조체 변수의 초기화
  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 = {00}, p2 = {11};

변수 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