crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Глобальные переменные
Raks123
  опции профиля:
сообщение 22.11.2011, 16:05
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 2.10.2011
Пользователь №: 2920

Спасибо сказали: 0 раз(а)




Репутация:   0  


Вопрос такой: как правильно создать глобальную переменную, чтобы её было видно в разных cpp файлах? Знаю, что это плохая практика, но все-таки у меня по другому, даже через самую большую задницу, которую я пытался изобрести не получается(((
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 23.11.2011, 7:36
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


с классом всегда удобнее :)

extern - это хвостик от C остался

Сообщение отредактировал Алексей1153 - 23.11.2011, 7:36
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 25.11.2011, 21:55
Сообщение #3


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Алексей1153 @ 23.11.2011, 10:36) *
с классом всегда удобнее :)

extern - это хвостик от C остался

не всегда. особенно при кроссплатформе и разных компиляторах. не все компиляторы понимают объявления без extern. это зависит от платформы и конкретного компилятора. extern поддерживают абсолютно все. это стандарт.
а вот экспорт классов в библиотеках разных компиляторов сделан по-разному. и часто для совместимости библиотек приходится писать обёртки и вызов отдельных функций именно через функции и extern, потому что это стандартный метод. а экспорт классов не стандартизован и каждый создатель компилятора делает, как может. а у мелкософта ещё и от версии к версии эти форматы менялись и в результате классы в библиотеках, собранных старыми студиями не совместимы с вызовами в новых :)
конечно, если это одна платформа, один компилятор и один программист - то решительно пофиг. но если вдруг собираешься экспортировать свои библиотеки (особенно закрытый код), то лучше избегать экспорта классов и глобальных данных. потому что с ними можно огрести геморроя при некоторых обстоятельствах.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 11:08