int x;
int main() {
x = 14;
f();
g();
}
void f() {
int x = 13;
h();
}
void g() {
int x = 12;
h();
}
void h() {
printf("%d\n",x);
}
Если используется статическое оглавление, каков результат? Если используется динамическое масштабирование, каков результат?
Теперь, если я понимаю право на выборку, разница между статическим и динамическим охватом статична делает переменные локальными для класса. Таким образом, значение X будет локальным по отношению к void f(), Void g() и int main(), и динамика сделает их доступными по всему миру. Я просто не уверен, как применить его к этому коду. если статический был использован, он будет печатать только последнее значение (12 из void g()), а динамическое будет использовать все значения X?
Я немного смущен тем, как на самом деле работает. Я знаю, что C использует Static scoping.