>백엔드 개발 >C#.Net 튜토리얼 >C 언어에서 typedef는 무엇을 의미합니까?

C 언어에서 typedef는 무엇을 의미합니까?

hzc
hzc원래의
2020-07-01 15:32:5722920검색

typedef는 C 언어의 키워드입니다. 해당 기능은 데이터 유형에 대한 새 이름을 정의하는 것입니다. 여기에는 내부 데이터 유형(int, char 등)과 사용자 정의 데이터 유형(stuct 등)이 포함됩니다.

C 언어에서 typedef는 무엇을 의미합니까?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.