typedef와 정의의 차이점은 다음과 같습니다. 정의는 전처리 편집기이고, 정의 가능한 매크로는 교체 가능성이 있는 반면, typedef는 편집기에 의해 처리되고 범위 규칙을 따르며 정의 유형 별칭으로 사용할 수 있습니다
#define typedef와 유사한 다양한 데이터 유형을 정의하기 위한 별칭이기도 한 C 지시어입니다. 하지만 여전히 차이점이 있습니다. 다음으로, 어느 정도 참고 효과가 있는 차이점을 자세히 소개하겠습니다. [추천 강좌:
C 언어 튜토리얼 ]
1. 전처리기 VS 컴파일러#define은 정의 지점에서 #define 값을 복사하여 사용 지점에 붙여넣는 전처리기에 의해 처리됩니다. Typedef는 컴파일러에 의해 처리되며 새로운 유형의 실제 정의입니다. 컨트롤이 컴파일러에 도달할 때쯤이면 모든 #define이 교체될 것입니다.
차이의 영향
(1) typedef는 세미콜론으로 끝나야 하며 #define은 세미콜론으로 끝나서는 안 됩니다.(2) #define에 대체 부작용이 있을 수 있습니다. 예:
typedef char * string_t; #define string_d char * string_t s1,s2; // s1和s2都是char *类型 string_d s3,s4; // s3是char *但是s4的类型是char(而不是char *)
두 번째 진술의 문제는 전처리기가 이를
char * s3,s4;
로 대체하기 때문입니다. 이는 s3은 char* 유형이지만 s4는 char 유형임을 의미합니다. 모든 변수를 포인터 유형으로 만들려면 모든 변수를 지정해야 합니다. *
(3) typedef는 범위 규칙을 따릅니다. 즉, 새 유형이 범위(함수 내)에 정의된 경우 범위가 존재하는 경우에만 새 유형 이름이 표시됩니다. 그러나 전처리기가 #define을 만나면 모든 항목을 대체합니다(그 이후에는 범위 지정 규칙이 없습니다). 예:
int main (){ { //新范围开始 typedef int myInt_t; #define myInt_d int myInt_t a; // a的类型为int myInt_d b; // b的类型为int } //新范围结束 myInt_t c; //错误,输入myInt_t未找到 myInt_d d; //d的类型为int }2. Macros VS type aliases
#define은 매크로를 정의하는 데에도 사용할 수 있지만 typedef는 기존 유형에 새 이름을 제공하는 데에만 사용할 수 있습니다(새 유형을 만들 수는 없습니다). 마찬가지로 #define을 사용하여 실제로 N을 정의하지는 않지만 코드 전체에서 N을 10으로 바꾸는 변수
#define N 10
를 정의할 수 있습니다. 따라서 명명된 상수에 사용할 수 있습니다. Typedef는 정의된 유형에만 새 이름을 제공할 수 있습니다
3. typedef를 유형 별칭으로 사용하세요일부 유형 정의는 #define이 아닌 typedef를 통해서만 정의할 수 있습니다. 예:
(1) 크기 10의 정수 배열에 새 이름을 지정합니다. typedef int arr [ 10 ] ;
(2) 구조 유형
typedef struct { int a; char b; } myType;
에 새 이름을 지정합니다. 요약: 위 내용은 이 기사의 전체 내용입니다. 모두에게 도움이 될 것입니다.
위 내용은 C 언어에서 typedef와 정의의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

WebStorm Mac 버전
유용한 JavaScript 개발 도구
