![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| EnergoHokum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
Да, порядок, завелось, пропустил в Makefile одно вхождение. Но некрасиво!!! Некрасиво. Нужно сделать лучше. Буду пробовать.
|
|||
|
||||
| MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
static-определение может быть в .h-файле например, если в каждом .cpp-файле, куда подключается .h-файл, должны быть локальные копии данных, которые определены как static в .h-файле Добавлено через 1 минуту и 11 секунд
это не некрасиво, а правильно -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
| Random13 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 21.11.2007 Репутация: нет Всего: нет |
Ну если в каждом cpp файле идет просто копия, то в h файле не определение, а объявление переменной, память таки ей выделяется в срр. И в каждом срр ее нужно будет определить как глобальную, и при желании инициализировать...Я так понимаю... Что, в общем, можно сделать и без этих хлопот с h файлом... Добавлено через 8 минут и 20 секунд Хотя тут опять же возникает вопрос, если я эту переменную в h файле использую, скажем в inline функции, а память выделил в нескольких срр файлах и хедэр файл ко всем к ним подключается, то какая переменная будет тогда использоваться в этой функции ? Это сообщение отредактировал(а) Random13 - 6.12.2007, 11:42 |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
зачем лишние телодвижения, если есть .h-файлы? пример кода можно? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Random13 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 21.11.2007 Репутация: нет Всего: нет |
Для чего тут нужно объявление статической глобальной не совсем понятно, если в каждом срр ее нужно опять писать и инициализировать. Скорее всего для наглядности в хедер файле объявление - что мол такая переменная тут есть, обычно же каждому срр соответствует один хедер с объявлениями. Пример кода напишу, как освобожусь, я тут занят чуток - застрял на какой-то обидной плюхе не понятно в чем ошибка... Это сообщение отредактировал(а) Random13 - 6.12.2007, 15:52 |
|||
|
||||
| Random13 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 21.11.2007 Репутация: нет Всего: нет |
В общем в моем понимании хэдер файлы в проекте С++, в основном используют, как краткую ссылку на то, что же там есть в срр и для связи данного срр с остальным проектом.
Так, как область видимости статической переменной ограничена самим файлом срр, то о связи с проектом речь тут не идет, скорее для наглядности. А так объявление ее в хедэр ни на что не влияет - постирать эти объявления из h файлов и ничего не изменится... Это сообщение отредактировал(а) Random13 - 6.12.2007, 16:27 |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
||||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
|
||||
|
|||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| zkv |
|
||||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
да пожалуйста, пример ниже в VC++8 работает. У Страуструпа есть обоснование, типа глобальные константные переменные не экспортируются
Это сообщение отредактировал(а) zkv - 6.12.2007, 21:59 |
||||||
|
|||||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
zkv,
в С не прокатит в С++ возможно (если уж Страуструп пишет -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
||||
|
||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
Тут пример простой, но можно ведь и несколько const-переменных (объектов), которые могут вставляться в список, сравниваться посредством указателя (для объектов) и т.д. Использовать-то можно, конечно же, учитывая, что одна (логически) переменная превращается при таком использовании в несколько физических областей памяти |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
SergeCpp,
const-переменные на то и const-переменные, чтобы их использовать только по значению, которое подставляется компилятором в виде непосредственного операнда инструкций имхо, все остальные варианты использования ошибочны -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
MAKCim, ты хочешь сказать, что код:
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |