1 개요[ | ]
- 선언과 정의 차이점
- Difference between Declaration and Definition
- 선언과 정의의 가장 큰 차이점은 메모리가 할당되는지를 보면 된다.
2 선언[ | ]
- 컴파일러에게 변수의 정보만을 준다.
- 실제 메모리를 사용하지는 않는다.
- 그러한 변수가 있다는 정보(메타데이터)만 있고 실제 데이터는 없는 것이다.
- 물론 메타데이터만 있더라도 전혀 메모리를 사용하지 않는 것은 아니고, 선언 그 자체에 대한 메모리는 사용한다.
- 선언만으로는 그 선언이 가리키는 실체에 대해 메모리를 할당하지는 않는다는 것이다.
- 비유하자면 건물의 명칭은 장부에 기록하지만, 실제 건물을 짓지는 않은 상황이라 할 수 있다.
C
Copy
extern int a;
C
Copy
int a();
C
Copy
struct a;
C
Copy
typedef unsigned int UINT;
C
Copy
#define SUM(a, b) (a + b)
3 정의[ | ]
- 컴파일러에게 실제 변수를 생성하도록 한다.
- 실제 메모리를 사용한다.
C
Copy
int a;
C
Copy
int a()
{
return 0;
}
C
Copy
struct x {
int x;
int y;
};
4 같이 보기[ | ]
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.
- 분류 댓글:
- C (7)
C, C++ 주석 ― YkhwongC, C++ 주석 ― John JeongC, C++ 주석 ― JmnoteC, C++ 주석 ― John JeongC언어 연결리스트 구현 ― 돌멩이C언어 연결리스트 구현 ― John JeongC언어 연결리스트 구현 ― 돌멩이