|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 118
|
|
Отличие static от объявление переменных ДО функции main26.09.2009, 21:17. Показов 11070. Ответов 8
Метки нет (Все метки)
Может быть я не совсем точно выразился в заголовке. Интересует отличие объявление переменных ДО функции main и объявление через static. По моим ощущениям если объявлено через static, то переменная существует всегда(даже при выходе из блока где она использовалась). Но ведь если просто объявить переменные до функции main они также будут видны везде. Поясните в чем загвоздка.
Заранее спасибо. P.S. Прошу прощения если вопрос поставлен не корректно.
0
|
|
| 26.09.2009, 21:17 | |
|
Ответы с готовыми решениями:
8
Main() и объявление переменных Почему объявление функции происходит до main? Объясните пожалуйста объявление функции вне main |
|
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
|
|
| 26.09.2009, 21:39 | |
|
Переменные/функции будут видны без static но не в классах например.
1
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 26.09.2009, 21:46 | |
|
1. static-переменная действительно имеет статическое время жизни и "существует" всегда, как и переменная, объявленная "до" main (а та - именуется "глобальной"). Но вот область видимости static-переменной ограничена: от точки ее объявления до конца блока, в котором она объявлена.
2. второе различие заключается в моменте инициализации: если глобальные переменные гарантированно инициализируются к моменту первого использования единицы компиляции, в которой они объявлены, то для статической переменной гарантируется только то, что она будет инициализирована в тот момент, когда поток управления первый раз пройдет через точку ее объявления. PS: переменная "существует" и "видима" - разные понятия. Почувствуй разницу!
2
|
|
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 118
|
|
| 26.09.2009, 21:49 [ТС] | |
|
Т.е. если у меня прога на чистом СИ, и модуль всего один, то фактически разницы никакой... правильно??
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|||||||||||
| 26.09.2009, 21:55 | |||||||||||
|
Нет, не правильно.
3
|
|||||||||||
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 118
|
|
| 26.09.2009, 22:00 [ТС] | |
|
Нипонятно((((( Надо ботать наверное матчасть....
Ну вообще я имел ввиду что файл у меня один.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 26.09.2009, 23:53 | |
|
Всё понятно. Хорошо, начнём с твоего случая. Пусть у тебя один файл. А теперь наполни его содержимым кода номер 1 CheshireCat,
Ну, всё. Компилируй и наблюдай. Спрашивай.
1
|
|
|
|
||||||||||||||||
| 27.09.2009, 00:10 | ||||||||||||||||
|
Попробую по простому, т.е. на примерах
======================================== ================
======================================== ================ Второе использование static'а - это создание глобальной переменной, обращаться к которой можно только из конкретной функции (или даже лексического блока)
2
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 118
|
|
| 27.09.2009, 00:50 [ТС] | |
|
Всем спасибо. Ваши примеры плюс чтение мануалов все разъяснило.
0
|
|
| 27.09.2009, 00:50 | |
|
Помогаю со студенческими работами здесь
9
Объявление static переменной в классе Объявление static переменной в методе
Смысл запрета на объявление enum в не static классах? The method main cannot be declared static Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|