반응형
typedef는 C언어의 모든 데이터 타입에 별칭을 지어줄 수 있습니다. 별칭이란 이름을 지어준다는 의미입니다. 예를 들어 unsigned long인 긴 데이터 타입 대신 ulong으로 정의하여 변수 선언을 할 수 있게 해줍니다.
typedef는 주로 구조체 정의에 사용됩니다. 구조체 변수를 선언할 때 매번 struct (구조체이름) (구조체변수); 대신 (구조체별칭) (구조체변수); 형태로 짧게 선언하여 코드의 복잡성을 단순화시킬 수 있습니다.
typedef <데이터 타입> <별칭>
typedef unsigned long ulong;
위와 같이 선언된 후에는 ulong으로 unassigned long 변수를 정의할 수 있습니다.
ulong i, j;
typedef 구조체 사용 예제
위에서 언급한 것처럼 typedef는 구조체에 많이 사용됩니다. 기본적인 사용 방법은 아래와 같습니다.
typedef struct
{
member1;
member2;
member3;
} 구조체별칭;
이렇게 구조체 별칭을 정해준 후 구조체 변수를 선언할 때는 다음과 사용하면 됩니다.
구조체별칭 t1, t2;
#include<stdio.h>
#include<string.h>
typedef struct employee
{
char name[50];
int salary;
}emp;
void main( )
{
emp e1;
printf("\nEnter Employee record:\n");
printf("\nEmployee name:\t");
scanf("%s", e1.name);
printf("\nEnter Employee salary: \t");
scanf("%d", &e1.salary);
printf("\nstudent name is %s", e1.name);
printf("\nroll is %d", e1.salary);
}
employee 구조체에 emp 별칭을 주어 main() 함수 내에서 구조체 변수를 emp e1;으로 선언하였습니다.
typedef 그리고 포인터
포인터 또한 typedef로 별칭을 지어줄 수 있습니다. 포인터의 개념을 숙지한 후에 사용하는 것을 추천해 드립니다.
int* x, y;
위의 예제에서 포인터 연산자인 *은 오른쪽 변수와 결합합니다. 즉, x는 포인터 변수이고 y는 int 변수란 의미입니다.
typedef int* IntPtr;
IntPtr x, y, z;
int 타입 포인터 변수를 IntPtr로 별칭을 준 후 위와 같이 한 줄에 모든 변수를 포인터 변수를 선언할 수 있습니다.
<< 다음 | 혼자 공부하는 C언어 | 이전 >> |
반응형
'프로그래밍 > C' 카테고리의 다른 글
C언어 포인터 (0) | 2019.12.20 |
---|---|
C언어 공용체 (Union) (0) | 2019.12.20 |
C언어 구조체 (Structure) (0) | 2019.12.19 |
배열을 함수의 매개변수로 사용하기 (0) | 2019.12.19 |
값에 의한 호출 (Call by Value), 참조에 의한 호출 (Call by Reference) (0) | 2019.12.19 |