【问题标题】:C99- Condition is always true inside functionC99- 函数内部条件始终为真
【发布时间】:2021-12-04 16:46:33
【问题描述】:

我正在编写一个函数,它的一部分只需要运行一次。我尝试创建一个本地标志变量,但不知何故,我收到一条错误消息。条件始终为真。 我的函数的简化版本如下所示:

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};
        }
//...

【问题讨论】:

  • 错误信息是什么?什么时候发行?谁发行的?
  • 我收到一条错误消息,您的意思是警告吗?
  • 请提供完整、可运行的示例Minimal Reproducible Example
  • 您的意思是“在每次调用函数期间运行一次”还是“仅在第一次调用该函数期间运行一次”?

标签: c function c99


【解决方案1】:

试试这样:

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 时它总是为真。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多