我正在编程一个简单的库来返回我的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/