typedef는 새로운 자료형을 정의할때 사용된다.
비슷한 선언으로 #define이 있지만 차이점이 있다.
우선 #define의 #은 기본적으로 컴파일되기전에 수행되는 선행처리기이며, define은 치환을 한다는 의미가 있다.
다음 문장을 살펴보자
-----------------------------------------------------------
하지만 #define은 자료형 자체를 선언해 주지는 않는다.
#define limit int 라는 문장은 틀린 문장이다.
이때 필요한게 typedef이다.
----------------------------------------------------------
#include <iostream>
typedef int limit; //int의 자료형을 limit으로 쓰겠다는 뜻이다
void main()
{
결론: #define은 단순 치환이며 자료형을 선언해주지는 못하지만, typedef는 새로운 자료형을 선언할수있다.
비슷한 선언으로 #define이 있지만 차이점이 있다.
우선 #define의 #은 기본적으로 컴파일되기전에 수행되는 선행처리기이며, define은 치환을 한다는 의미가 있다.
다음 문장을 살펴보자
-----------------------------------------------------------
#include <iostream>
#define limit 500 //이 문장을 해석하면, 코드전체에서 선행적으로 limit를 500으로 치환하는 것이다.
void main()
{
int a = limit; //여기서 a값은 500이 된다.
}
----------------------------------------------------------하지만 #define은 자료형 자체를 선언해 주지는 않는다.
#define limit int 라는 문장은 틀린 문장이다.
이때 필요한게 typedef이다.
----------------------------------------------------------
#include <iostream>
typedef int limit; //int의 자료형을 limit으로 쓰겠다는 뜻이다
void main()
{
limit L = 300; //limit이나 int나 같은 자료형이다. sizeof(L)은 4byte가 출력된다.
}
----------------------------------------------------------
결론: #define은 단순 치환이며 자료형을 선언해주지는 못하지만, typedef는 새로운 자료형을 선언할수있다.
'Computer > Software' 카테고리의 다른 글
[C언어] typedef 구조체선언 (0) | 2011.08.13 |
---|---|
[C언어] 연결리스트 (0) | 2011.08.09 |
[웹해킹] 패킷암호화 알고리즘 (0) | 2011.07.15 |
[웹해킹] 패킷인코딩 방식 (0) | 2011.07.15 |
[Linux] Promiscuous mode 설정방법 (0) | 2011.07.14 |