가로 세로의 길이가 각각 3인 int형 2차원 배열의 주소 값을 두 개 전달 받아서, 배열에 저장된 값의 총 합이 더 큰 배열의 주소 값을 반환하는 함수를 정의하고, main함수에서는 반환된 주소 값을 이용하여 총 합이 더 큰 배열에 저장된 모든 정수들을 출력하는 프로그램.


이 프로그램의 중요한 점!!


: 함수의 리턴자료형을 2차원 배열의 주소 값에 해당하는 반환형을 정의하는 것은 불가능하다.

예를 들어, int (*ptr)[3] Compare_Num(int**, int**);


그래서 typedef 선언을 통해서 배열의 이름에 해당하는 포인터 형을 선언하면, 이를 함수의 반환형에 사용할 수 있다.




모든 프로젝트에서는 typedef로 자료형을 정의하는 것이 일반적이다.

왜냐하면, 만약 어느 컴파일러에서 int형 자료형이 2바이트로 표현이 된다면 모든 소스코드들을 찾아서 4바이트 자료형으로 바꿔주는 작업을 해야 한다.

하지만, typedef로 자료형을 선언해주고 그 자료형으로 대체해서 소스코드를 작성한다면 문제가 있을 시 typedef 정의만 바꾸어 주면 된다.

그래서 대부분의 프로젝트에서는 typedef 선언으로 자료형과 포인터 형을 정의해서 프로젝트를 진행한다.


※ int나 double과 같은 기본 자료형의 이름을 사용하지 않는다는 뜻은 아니다. 어느 시스템에서나 그 크기가 동일해야 하는 변수를 선언할 경우에 typedef를 유용하게 사용할 수 있다는 뜻이다.


'Programming > C' 카테고리의 다른 글

const 키워드  (0) 2013.02.15
힙에 할당된 메모리의 확장 시 호출하는 realloc 함수.  (0) 2013.02.15
Bit Mask (비트 마스크)  (0) 2013.02.15
비트 쉬프트 연산자  (0) 2013.02.15
printf 함수의 서식문자 조합.  (0) 2013.02.15
Posted by scii
: