C++ のグローバル変数に関する問題に直面しています。という名前の関数がありますiDraw()
。global variable
そして、名前付きによって制御される 2 つのコード セグメントをここに書くことを計画しましたflag
。メイン関数でflag
1 に設定してから を呼び出すと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;
}