C: создать глобальную переменную с возвращаемым значением из функции - PullRequest
0 голосов
/ 16 июля 2011

Я программирую простую библиотеку, чтобы вернуть моего пользователя базы данных и передать.Это все отлично работает.Однако у меня уже есть готовое приложение на C, которое я хочу настроить, не добавляя новые значения (user и pass) в каждую возможную функцию.Поэтому я подумал, что просто сделаю их глобальными.

Итак, перед моим int main () у меня есть

const char * mySQLUsername = getMySQLPassword();
const char * mySQLPassword = getMySQLUsername();

Но поскольку это функция, мой компилятор жалуется:

error: initializer element is not constant

Как обойти эту проблему, не прибегая к дополнительному коду везде?

1 Ответ

3 голосов
/ 16 июля 2011

Просто запустите функции в вашем инициализаторе, скажем, как первую операционную вещь, которую вы делаете в main.

 //...
 const char * mySQLUsername;
 //...

 int main(int argc, char **argv){
     // variable declarations, etc.

     mySQLUsername = getMySQLUsername();

     //...

Или, альтернативно, поместите инициализаторы в функцию:

 //...
 const char * mySQLUsername;
 //...

 void initGlobalVars(){
     mySQLUsername = getMySQLUsername();
     //...others...
 }

 int main(int argc, char **argv){
     // variable declarations
     initGlobalVars();
     //...
...