Область видимости скрывается в C - PullRequest
4 голосов
/ 19 января 2012

Есть ли у C скрытие области видимости?

Например, если у меня есть глобальная переменная:

int x = 3; 

Могу ли я «объявить» внутри функции или указать «другое» int x?

Ответы [ 4 ]

5 голосов
/ 19 января 2012

Да, так работает С. Например:

int x;

void my_function(int x){ // this is another x, not the same one
}

void my_function2(){
  int x; //this is also another x
  {
    int x; // this is yet another x
  }
}
int main(){
  char x[5]; // another x, with a different type
}
3 голосов
/ 19 января 2012

Да, но некоторые составители жалуются или им можно сказать, чтобы они жаловались.Для gcc используйте -Wshadow.

1 голос
/ 19 января 2012

Да Скрытие области существует в C.
Переменная в локальной области будет скрывать переменную с таким же именем в глобальной области.

0 голосов
/ 19 января 2012

Да.Это очень возможно.Пожалуйста, пройдите эту запись для подробного объяснения различных областей в C

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...