본문 바로가기
C

2차원 공간상에서의 평행이동 (typedef 활용)

by KWONE 2024. 6. 30.

typedef 활용


  
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
typedef struct coordinate { //구조체 좌표를 정의하면서 동시에 새로운 자료형인 POINT로 정의
int x;
int y;
}POINT;
POINT translate(POINT p,POINT delta);
int main(void)
{
POINT p;
POINT delta;
printf("coordinate : ");
scanf("%d %d", &p.x, &p.y);
printf("delta : ");
scanf("%d %d", &delta.x, &delta.y);
POINT result;
result = translate(p,delta); //p를 delta만큼 평행이동하기 위해 함수호출,
//p와 delta가 함수의 인수로 주어지고 이들은 구조체이므로 모두 매개 변수로 복사된다.
printf("(%d,%d) + (%d,%d) -> (%d,%d)\n", p.x, p.y, delta.x, delta.y, result.x, result.y);
return 0;
}
POINT translate(POINT p, POINT delta)
{
POINT new_p;
//구조체 멤버별로 따로 덧셈을 하여준다.
new_p.x = p.x + delta.x;
new_p.y = p.y + delta.y;
return new_p; //결과를 저장하고 있는 구조체인 result(new_p)를 반환한다. 복사본이 main()으로 전달된다.
}

typedef를 활용하면 배열과 같은 복잡한 자료형도 새로운 자료형으로 다시 정의할 수 있다.


  
typedef float VECTOR[2]; //VECTOR는 실수 2개로 이루어진 1차원 배열
typedef float MATRIX[10][10]; //MATRIX는 실수 100개로 이루어진 2차원 배열
VECTOR v1, v2; //v1과 v2는 1차원 배열
MATRIX m1, m2; //m1과 m2는 2차원 배열

 

'C' 카테고리의 다른 글

매크로  (0) 2024.07.09
스트림과 파일 입출력 (성적 기록 및 계산기)  (0) 2024.07.03
문자열 처리 라이브러리 함수  (0) 2024.06.27
문자열 입출력 라이브러리  (0) 2024.06.25
문자 입출력 라이브러리  (0) 2024.06.25