검색결과 리스트
글
typedef의 일반적인 형식
typedef old-name new-name;
typedef의 사용이유는
1. 여러 시스템 환경에서 사용할 수 있는 프로그램을 만들기 위해서
(변수를 재선언해서 시스템 환경에 맞는 변수와 매칭해주기 위해서)
2. 복잡한 선언 (#define과 비슷한 점)
하지만 다른점
typedef char *STRING;
#define STRING char*
STRING name, sign을 선언했을 때
typedef 는 *name, *sign이 되지만
#define은 *name, sign이 된다.
typedef char (*FRPTC())[5];
FRPTC를 char형 5개짜리 배열을 가리키는 포인터를 이턴하는 함수의 데이터형으로 만든다.
변경자의 의미
* 포인터를 나타낸다.
() 함수를 나타낸다.
[] 배열을 나타낸다.
int board[8][8]; //int형 배열의 배열
int **ptr; //int형을 가리키는 포인터를 가리키는 포인터
int *risks[10]; //int형을 가리키는 10개짜리 배열
int (*rusks)[10]; // int형 10개짜리 배열을 가리키는 포인터
int *oof[3][4]; // int형을 가리키는 포인터들의 3*4배열
int (*uuf)[3][4]; // int형 3*4배열을 가리키는 포인터
int (*uof[3])[4]; // int형 4개짜리 배열을 가리키는 포인터 [3]배열
1.배열을 나타내는 []과 함수를 나타내는()는 우선순위가 같다. 이들은 간접 연산자*보다 우선순위가 높다.
그렇기 때문에 int *risks[10]은 포인터들의 배열이 된다.
2. []과 ()는 왼쪽에서 오른쪽으로 결합한다.
int goods[12][50]은 50개짜리를 담고있는 12개짜리 배열이 된다.
3. []과 ()는 우선순위가 같다. 그러나 왼쪽에서 오른쪽으로 결합하기 때문에
int (*rusks)[10]은 int형 10개짜리 배열을 가리키는 포인터가 된다.
char *fump(); // char형을 가리키는 포인터를 반환하는 함수
char (*fump)(); // char형을 리턴하는 함수를 가리키는 포인터
char (fump[3])(); // char형을 리턴하는 함수를 가리키는 3개의 배열
출처 : http://itbrain.tistory.com/entry/typedef%EC%9D%98-%EC%82%AC%EC%9A%A9
http://yatoyato.tistory.com/783
RECENT COMMENT