static 선언에 관한거요..

kknd345의 이미지

제가 함수를 여러개 선언했습니다.
그런데 static 으로 선언해야 하는데..함수를 다 작성하고 나중에 static 이 되어야 한다는것을 알았어요

처음에 만들때 원리가 비슷한 함수들이라 헷갈리지 않으려고 변수명을 같게 둬 버렸는데 static 이 되면 서로 영향을 끼치지 않을까요?

예로

void so1()
{
    static double a;
    static double b;
    static double c;
}

void so2()
{
   static double a;
   static double b;
   static double c;
}

제가 알기로는 static 으로 선언하면 변수가 안 사라진다고 하는데...
저렇게 두면 so1과 so2 의 같은 이름의 변수는 서로 영향을 끼치나요?
아님 저렇게 써도 상관없나요?

doldori의 이미지

전혀 상관 없습니다. 블럭 내의 static 변수는 통용 범위(scope)가

블럭 내로 제한되기 때문입니다.