我正在编写一个简单的库来返回我的db用户并传递。一切正常。但是,我已经有一个完成的C应用程序,我想调整而不将新值(用户和传递)放入每个可能的功能。因此,我认为我只是让它们成为全球性的。
所以在我的int main()之前我已经
了const char * mySQLUsername = getMySQLPassword();
const char * mySQLPassword = getMySQLUsername();
但是因为它是一个函数,我的编译器抱怨:
error: initializer element is not constant
如何解决此问题而无需在任何地方添加额外的代码?
答案 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();
//...