C:使用函数的返回值创建一个全局变量

时间:2011-07-16 00:40:48

标签: c constants

我正在编写一个简单的库来返回我的db用户并传递。一切正常。但是,我已经有一个完成的C应用程序,我想调整而不将新值(用户和传递)放入每个可能的功能。因此,我认为我只是让它们成为全球性的。

所以在我的int main()之前我已经

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

但是因为它是一个函数,我的编译器抱怨:

error: initializer element is not constant

如何解决此问题而无需在任何地方添加额外的代码?

1 个答案:

答案 0 :(得分:3)

只需在初始值设定项中运行这些功能,就像在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();
     //...