Jump to content
СофтФорум - всё о компьютерах и не только

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


Recommended Posts

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

Link to comment
Share on other sites

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

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

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

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

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...