我正在编程一个简单的库来返回我的db用户和pass。一切正常。不过,我已经完成了一个C应用程序,我想调整它,而不需要将新的值(user和pass)放入每个可能的函数中。因此,我想我只需要让它们全球化。
所以在我的int main()之前

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

但是因为它是一个函数,我的编译器抱怨道:
error: initializer element is not constant

如何解决这个问题,而不必在任何地方输入额外的代码?

最佳答案

只需在初始值设定项中运行函数,比如说,作为在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();
     //...

关于c - C:使用函数的返回值创建全局变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6714507/

10-10 15:24