2011-07-16 163 views
0

我正在編程一個簡單的庫來返回我的db用戶並傳遞。這一切工作正常。不過,我已經完成了一個C應用程序,我不想將新值(用戶和傳入)放入每個可能的函數中進行調整。因此,我認爲我只是讓它們成爲全球性的。C:用函數的返回值創建一個全局變量

所以之前我INT主()我有

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

但因爲它是一個功能,我的編譯器抱怨:

error: initializer element is not constant 

如何解決此問題,而不必隨處添加額外的代碼?

回答

3

只需在初始化程序中運行函數即可,例如您在main中執行的第一個操作。

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

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

    mySQLUsername = getMySQLUsername(); 

    //... 

或者,把intializers的功能:

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

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

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

:-)我累了..謝謝馬克。 –

相關問題