我正在写一个函数,它有一个部分,只需要运行一次。我尝试创建一个本地标志变量,但不知何故,我得到一个错误消息。条件总是成立的。我的函数的简化版本如下所示:
void showMainMenu(bool *bool_drawMainMenu, TTF_Font *font1, TTF_Font *font2){
while(*bool_drawMainMenu){
bool flag=true;
if(flag){
flag=false;
renderMenu(font1,text_Surface,text_Texture,renderer,mainMenu,3);
SDL_Rect where={720/2,150};
}
//...
试一下:
void showMainMenu(bool *bool_drawMainMenu, TTF_Font *font1, TTF_Font *font2){
bool flag=true;
while(*bool_drawMainMenu){
if(flag){
flag=false;
renderMenu(font1,text_Surface,text_Texture,renderer,mainMenu,3);
SDL_Rect where={720/2,150};
}
//...
如果你在每个循环中重新定义标志变量,当你到达If时,它将始终为真。