Scope의 제한을 받는 전역 변수이다.
다른 파일에서는 수정할 수 없다.
In File, Namespace, Class, Function
// Cat.h
class Cat
{
public:
Cat();
private:
static int mCount;
}
// Cat.cpp
int Cat::mCount = 0; // 초기화 해야한다.
Cat::Cat()
{
mCount++;
}
void func(int num)
{
static int result;
return result += num;
}
int main()
{
func(1); // 1
func(2); // 3
std::cout << result; // error !
}
// header
class Math
{
public:
static int Square(int x);
}
// cpp
int main()
{
std::cout << Math::Square(10); // 바로 사용 가능
}
다른 파일의 전역 변수에 접근 가능하도록 한다.
// A.h
extern int x;
// B.c
#include "A.h"
int main()
{
}