선언과 정의에 차이점은 ‘메모리를 할당하는가’ 입니다.
주로, C나 C++같이 코드순서를 중요시하는 언어에서 구분합니다.
웹개발에서는 이 2개를 혼용해서 사용합니다. (같은 뜻으로 간주)
선언 (Declaration)
extern int a; // 외부선언 (메모리 할당 안됨)
int add(int a, int b); // 함수의 선언
class ClassID; // 클래스의 선언
C++
복사
정의 (Definition)
int a; // 변수의 정의1
int b = 10; // 변수의 정의2
int add(int a, int b)
{ // 함수의 정의 (함수 본체가 있습니다.)
return a+b;
}
struct C // 구조체의 정의
{
int a;
int b;
};
class D // 클래스의 정의
{
int a;
int b;
};
C++
복사
<참고>