C 및 C++에서 typedef 사용에 대한 간단한 가이드

高洛峰
풀어 주다: 2016-10-12 15:48:05
원래의
1987명이 탐색했습니다.

데이터 구조를 다시 배우면서 이전에 배웠던 지식도 많이 잊어버렸다는 것을 깨달았습니다. C/C++의 typedef 키워드는 아직 제자리에 있지 않았습니다. 마지막으로 C++ 학습에 사용되는 교과서를 읽고 Du Niang에게 질문했으며 typedef 사용법에 대한 많은 블로그를 읽었습니다. 그래서 제가 이해한 내용을 정리하고 싶었습니다.

1. 기본 설명

Typedef는 C 언어에서 데이터 유형에 대한 새로운 이름을 정의하는 데 사용되는 키워드입니다. 여기의 데이터 유형에는 내부 데이터 유형(int, char 등)과 사용자 정의 데이터 유형(struct 등)이 포함됩니다.

프로그래밍에서 typedef를 사용하는 목적은 일반적으로 두 가지입니다. 하나는 기억하기 쉽고 명확한 의미를 갖는 새 이름을 변수에 부여하는 것이고, 다른 하나는 좀 더 복잡한 유형 선언을 단순화하는 것입니다.

2. 사용법

(1) typedef를 사용하여 기존 유형 이름을 대체할 새 유형 이름을 선언합니다. 예:

typedef int Status  //指定标识符Status代表int类型
typedef double DATE  //指定标识符DATE代表double类型
로그인 후 복사

다음 코드는 다음과 같습니다.

int i; double j;
Status i;DATE j;
로그인 후 복사

(2) typedef를 사용하여 배열 유형에 새 이름을 지정합니다.

typedef int NUM[100];//声明NUM为整数数组类型,可以包含100个元素
NUM n;//定义n为包含100个整数元素的数组,n就是数组名
로그인 후 복사

(3) 구조 유형에 대한 새 이름 선언:

typedef struct  //在struct之前用了关键字typedef,表示是声明新类型名
{
    int month;
    int day;
    int year;  
} TIME; //TIME是新类型名,但不是新类型,也不是结构体变量名
로그인 후 복사

새로 선언된 새 유형 이름 TIME은 위에서 지정한 구조 유형을 나타내므로 TIME을 사용하여 다음과 같이 구조 변수를 정의할 수 있습니다.

TIME birthday;
TIME *P //p是指向该结构体类型数据的指针
로그인 후 복사

3. 참고:

(1) typedef를 사용하면 기존 유형에 유형 이름만 추가될 뿐 새 유형이 생성되지는 않습니다. 단지 새 이름을 추가하고 이 이름을 사용하여 변수를 정의할 수 있습니다. 예를 들어 위의 상태를 사용하여 변수 i를 정의하면 i 변수의 유형은 int입니다.

(2) typedef를 사용하여 새로운 유형 이름을 선언할 수 있습니다. 하지만 변수를 정의하는 데에는 사용할 수 없습니다

4. 장점

typedef 유형 이름을 사용하면 프로그램 이식성에 유리합니다. 때때로 프로그램은 하드웨어 기능에 의존합니다. 예를 들어, 특정 C++ 시스템에서는 2바이트가 int 유형 변수를 저장하는 데 사용되고, 4바이트는 long 유형 변수를 저장하는 데 사용됩니다. 다른 C++ 시스템에서는 int 유형 변수가 4바이트에 저장됩니다. int 유형 변수를 저장하기 위해 2바이트를 사용하는 C++ 시스템에서 int 유형 변수를 저장하기 위해 4바이트를 사용하는 C++ 시스템으로 C++ 프로그램을 이식할 때 원래 typedef를 사용하여 int 유형을 선언하는 경우, 예를 들면 다음과 같습니다. 🎜>

Typedef  int INTEGER ; //原来这样写
Typedef long INTEGER ; //移植后可以改为这样
로그인 후 복사
typedef로 선언하지 않으면 int 유형이 정의된 모든 위치를 변경해야 합니다.

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿