#include <stdio.h>
void func() {
static int x = 0; // x is initialized only once across three calls of
// func()
printf("%d\n", x); // outputs the value of x
x = x + 1;
}
int main(int argc, char * const argv[]) {
func(); // prints 0
func(); // prints 1
func(); // prints 2
// Here I want to reinitialize x value to 0, how to do that ? <-- this line
return 0;
}
위의 코드에서 func()를 3 번 호출 한 후 x
을 0으로 다시 초기화하려고합니다. 0으로 다시 초기화하는 방법이 있습니까?외부에서 로컬 정적 변수 값을 변경하는 방법
'func()'을 선언하면 다시 초기화 할 것인지 아닌지 알려주는 인수를 사용할 수 있습니다. 예 : 'void func (const bool reset = false) {...}'. – jogojapan
@jogojapan 잘 기술적으로 전역 int 포인터를 선언하고 x ..로 설정할 수 있지만 바람직하지 않은 것 같습니다. – Ancurio
@Ancurio 예, 물론이를 수행하는 다양한 방법이 있습니다. 필자가 함수 매개 변수를 제안한 이유는'func'을 사용하여'x'의 값에 대한 궁극적 인 권위를 유지한다는 것입니다. 왜냐하면 그것이 로컬 정적 변수이기 때문에 적절합니다. – jogojapan