Перейти к содержанию
СофтФорум - всё о компьютерах и не только

область видимости в с++


Рекомендуемые сообщения

всем привет. у меня возникает проблема с областью видимости статических переменых (с идентификатором static), во всей литературе, что я читал написано, что их область видимости ограничивается одним файлом, но когда я создаю статическую переменную в одном файле, а потом включаю этот файл во второй, в котором создаю статическую переменную с таким же именем возникает ошибка повторного определения. пользуюсь Code::Blocks 10 и Dev-C++ 5. почему это происходит?

Ссылка на комментарий
Поделиться на другие сайты

област видимости точнее сказать ограничиваеться translation unit-ом (не знаю как ето по русски).

Когда компилируете файл, из ваш .cpp файл и всех файлов, которые в #include делають один "translation unit" / .obj файл.

Разница между static и extern в том, что extern можно пользувать в других unit-ов - т.е. если ви делаети .exe и .dll, в .dll static можно пользувать только в .dll, а extern - и в .exe

Разница между static и не-static, что жизнь статических переменних равна жизню программи - они создаются при запуске и удаляются при окончение работи.

Надеюсь вы поняли меня.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...