2010-02-09 6 views
5

가능한 중복 :
Static variableC에서 다른 파일의 정적 변수에 액세스하는 방법은 무엇입니까?

방법 C에서 다른 파일에서 정적 변수에 액세스 할 수? 정적 변수에는 파일 범위가 있으므로 파일 외부에서 액세스 할 수있는 방법이 없다고 생각합니다. 그러나 여전히 같은 일을하는 몇 가지 트릭이나 방법이있을 수 있다고 생각합니다.

+4

왜 이렇게하고 싶은가요? –

+0

@ 닐이 말한 내용은 다음과 같습니다. http://stackoverflow.com/questions/1973162 –

답변

3

선언문에 extern 키워드를 사용하여 변수가 다른 파일 (외부 연결)에서 제공되도록 지정하십시오. 원래 정의에서 static 키워드를 삭제하십시오.

대 외부 대 연결 개체는 in this article으로 설명됩니다.

+1

음. 뭐? 내부 및 외부 연결을 모두 갖는 변수? –

+0

선언 대 정의 부분을 명확히했습니다. – Thorsten79

+0

이제 귀하의 답변은 기술적으로 정확하지만 불행히도 질문에 대답하지 않습니다. 질문 자체는 그렇게 좋지 않습니다. –

1

이 작업은 간접적으로 만 수행 할 수 있습니다 (예 : 정적 변수를 포함하는 파일의 범위 내에있는 함수가 포인터를 전달한다면.

5

나는 쉬운 방법이 없다고 생각합니다. 당신이 정적 변수로 파일을 변경할 수 있습니다 경우 같은 작업을 수행 할 수 있습니다

static int hiddenVar; // The static var you want to get at 

// A new function you write 
int * getHiddenVar() { 
    return &hiddenVar; 
} 

그러나 파일을 변경할 수 있다면 물론, 당신은 단지 정적 키워드를 드롭 할

.

또한이 방법이 도움이 될지는 모르겠지만 FreeBSD에서 커널 모듈을 작성할 때 이와 같은 작업을해야했습니다. 나는 정적 함수의 주소를 찾기 위해 커널의 링커 함수를 호출하는 트릭을 사용했다. 비록 당신이 정상적인 C 프로그램에서 이것을 할 수 있는지 의심 스럽다.

관련 문제