2017-11-02 7 views
0

구조체가 로컬 인 경우 함수 호출에서 구조체의 멤버 값을 유지할 수있는 방법이 있는지 궁금합니다. 원시 데이터 유형의 경우, 우리는 그것들을 정적으로 선언하고 함수 호출을 통해 데이터가 유지됩니다. 구조체가 호출 부분 또는 전역 변수로 정의 된 경우이를 유지할 수 있습니다. 그러나 함수 호출에서 로컬 구조 값을 유지하는 다른 대안이 있는지 궁금합니다.함수 호출에서 구조체의 멤버 값 유지

wikipedia으로 서술 단지 스테이지 설정 같이
struct A 
{ 
    int mem1; 
} 

void f1(void) 
{ 
    struct A var1; 
/*Now this var1 is a local variable. Declaring it as static will not help to retain value of mem1 across function calls I guess. */ 
} 
+1

'static'은 데이터 유형에 관계없이 작동해야합니다. 작동시키지 못하면 작동하지 않는 예제를 게시하십시오. – dbush

+0

함수 호출을 통해 무엇을 의미합니까? 로컬 변수도 포인터 내에서 –

답변

0

:

는 ... 정적 (링크)에 따라 양 (정적 변수 등)의 수명 및 가시성을 제어 예약어 . 단어 static은 이며 Java와 같이 C에 의해 영향을받는 언어에서도 사용됩니다.

정적은 저장소 클래스로 정의됩니다. 스토리지 클래스는 변수 및/또는 함수의 범위와 수명을 정의했습니다. 스토리지 클래스가 유형 앞에옵니다. 그것이 원시적인지 아닌지에 관계없이.

+0

이라는 마법의 단어를 찾지 않는 한 범위 내에서 멤버를 유지할 수 있습니다.하지만 내 주요 질문은 구조 멤버 (C++의 경우 클래스 멤버와 관련 될 수 있음) 및 함수 호출 간 유지 멤버 값 – Rajesh