typedef는 C 언어의 키워드입니다. 해당 기능은 데이터 유형에 대한 새 이름을 정의하는 것입니다. 여기에는 내부 데이터 유형(int, char 등)과 사용자 정의 데이터 유형(stuct 등)이 포함됩니다.
Typedef는 C/C++의 일반적인 구문입니다. typedef의 기능은 다음 네 가지 유형으로 요약됩니다.
1 유형 이름 정의
일반 응용 프로그램에서는 두 개의 문자 포인터를 정의하려고 합니다. 다음 코드: char *a, b
(1) char* a,b;
(2) char c='m';
(3) a=&c;
(4) b=&c ;
위 코드는 잘못되었습니다. a만 문자 포인터이고 b는 여전히 문자 변수입니다. 매크로 정의는 문자 대체일 뿐이므로 #define을 통한 매크로 정의는 여전히 유효하지 않습니다.
다음이 가능합니다:
(1) typedef char* PCHAR;
(2) PCHAR pa, pb
2. 프로그램을 작성할 때 다음 요소를 고려합니다. 플랫폼 이식, 변수가 차지하는 공간, 종료 모드 등 하드웨어 계층의 차이점은 코드에서 추상화됩니다.
부동 소수점 변수를 고려하세요. 하드웨어 플랫폼에 따라 차지하는 공간이 다를 수 있습니다. 이 경우 typedef를 사용하여 별도의 헤더 파일에 정의할 수 있습니다. :
(1) typedef float REAL;
(2) typedef short int INT16;
(3) typedef int INT32
(4)...
이 경우 프로그램 이식을 고려한다면 앞으로는 헤더 파일만 수정하면 됩니다.
3. 복잡한 선언에 별칭을 지정하세요
복잡한 선언의 형식은 다음과 같습니다: void (*b[10]) (void (*)());
의미: 첫 번째 *b[10]은 포인터 배열입니다. it 내부의 10개 요소는 모두 포인터입니다. 어떤 종류의 포인터입니까? null 반환 유형과 null 형식 매개변수를 갖는 함수 포인터입니다.
이러한 종류의 복잡한 선언은 typedef를 사용하여 단순화할 수 있습니다.
먼저: 뒤에 함수 포인터를 선언합니다:
(1) typedef void (pFunParam *)();
그런 다음 이전 포인터 배열을 선언합니다.
( 1 ) typedef void (*pFunx)(pFunParam);
원문의 단순화된 버전:
pFunx b[10];
이 문서를 작성하는 동안 온라인 블로그에서 typedef의 사용법을 참조했습니다.
.복잡한 문장:
(1) doube(*)() (*e)[9];
그러나 이 문장은 gcc에서 컴파일하면 통과되지 않는 것 같습니다.
(1) double (*(*e)[9])();
e는 9차원 배열에 대한 포인터입니다. 배열은 함수 포인터입니다. 함수 포인터가 비어 있고 반환 유형이 double입니다.
이 경우 이러한 typedef를 사용하여 선언을 단순화해야 합니다.
typedef (*(*ptr)[9])();
추천 튜토리얼: "
c 언어 튜토리얼위 내용은 C 언어에서 typedef는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!