0

C++ のグローバル変数に関する問題に直面しています。という名前の関数がありますiDraw()global variableそして、名前付きによって制御される 2 つのコード セグメントをここに書くことを計画しましたflag。メイン関数でflag1 に設定してから を呼び出すとiDraw、コードの一部が実行されます。flag を 2 に設定して呼び出すと、コードの他の部分が実行されます。しかし、期待どおりに機能していません。メイン関数でフラグの値を変更しているように見えますが、機能していません。最初にプログラムの先頭で宣言した値を保持しています。それを克服する解決策は何ですか?global.h私は、すべてのグローバル変数を宣言した場所で名前が付けられたヘッダー ファイルを使用しました。

extern int flag=0, animflag=1;
/* 
    function iDraw() is called again and again by the system.
*/
void iDraw()
{
    //place your drawing codes here 
    if(flag==1){
        iClear();
        iSetcolor(0,0,128);
        iShowBMP(0,0, "Images\\intro.bmp");
    }
    if(flag==2){
        //other codes here
    }
}
int main()
{
iInitialize(900, 500, "demooo");
animflag=0;
flag=1; // seems like this line has no impact
iDraw();
return 0;
}   
4

1 に答える 1