我在 C++ 中遇到了全局变量的问题。我有一个名为iDraw()
. 我计划在这里编写两段代码,它们将由一个global variable
命名的flag
. 在 main 函数中,如果我设置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;
}