Форум программистов, компьютерный форум CyberForum.ru

static const - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.83
SAMatyunin
3 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 16
21.06.2012, 11:07     static const #1
объясните, пожалуйста, вот такую странную конструкцию (накопал в старой проге):

после #include идет следующее:

C++
1
static const char *user = NULL;
1. для чего вообще static const?
2. почему константа *user - сделана указателем?
3. почему присваивается NULL

сама константа смотрю используется здесь:

C++
1
2
3
4
5
6
7
8
static void no_auth_data_fn(const char * pServer, const char * pShare, char * pWorkgroup,
    int maxLenWorkgroup, char * pUsername, int maxLenUsername, char * pPassword,
    int maxLenPassword)
           {
    if(user && user[0] != 0) strncpy(pUsername, user, maxLenUsername - 1);
    if(pass && pass[0] != 0) strncpy(pPassword, pass, maxLenPassword - 1);
        return;
           }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2012, 11:07     static const
Посмотрите здесь:

C++ const static vector<type>
C++ static и const
char operator[](unsigned short offset) const; // что означает const? C++
C++ Что это bool operator== (const CLASS&) const;
C++ static const?
C++ int const * const foo(const int* param) const - разъясните значение квалификаторов
C++ Ошибка компиляции "forbids in-class initialization of non-const static member"
#define PI or static const float PI C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soft.creator
 Аватар для soft.creator
103 / 103 / 4
Регистрация: 17.10.2010
Сообщений: 283
21.06.2012, 13:08     static const #2
static - видна только в этом c/cpp-файле
const char* - указатель на неизменяемую строку
NULL - изначально никуда не указывает

По всей видимости, где-то в другом месте программы делается так:
C++
1
user = "username";
и потом уже вызывается no_auth_data_fn
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
21.06.2012, 13:25     static const #3
1) static - это спецификатор класса памяти, который определяет как должна храниться переменная.
Переменные типа static - это переменные так называемого долговременного хранения, то есть они хранят свои значения в пределах своей функции или файла.

const - ключевое слово делает переменную константой.

2) из представленного кода не до конца понятно.

3) Когда присваивается NULL это значение является признаком того, что указатель указывает на адрес, которой точно не может содержать полезной информации.
Обычно применяется в списках, то есть указывает на начало списка.
Yandex
Объявления
21.06.2012, 13:25     static const
Ответ Создать тему
Опции темы

Текущее время: 13:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru