typedef 를 이용한 이차원 배열 주소 값 반환
Programming/C 2013. 2. 15. 02:31 |가로 세로의 길이가 각각 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 |