Qubc
@Qubc
Ненавижу полисемию.

Почему нет ошибки при переобъявлении переменной, которая уже объявлена в подключаемом файле?

/*test.h*/
int a;

/*main.c*/
#include "test.h"
int main (void) {
int a;
a++;
return 0;
}

Почему это не считается за redeclaration ?
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
15432
@15432
Системный программист ^_^
Области видимости разные ж. Одна внутри функции, другая глобальная.

И делая a++ вы инкрементите только временную локальную переменную.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы