【问题标题】:Debug mode flag always running调试模式标志始终运行
【发布时间】:2018-07-26 23:42:40
【问题描述】:

所以我有一个程序,但我应该只有在给出“-d”标志时才能让调试模式工作。出于某种原因,它总是在运行,即使没有给出 -d 也是如此。我在我的程序中声明我的 debugMode 为 FALSE,除非给出了 -d,但是在某个地方逻辑混乱了,我不确定我做错了什么。在我所拥有的任何地方,“如果 (debugMode == TRUE),它正在运行这些语句。

#define TRUE 1
#define FALSE 0

int debugMode = FALSE;


int main(int argc, char**argv){
    int i = 0; // loop counter
    for (i = 0; i < argc; i++) {
        if ('-' == argv[i][0] && 'd' == argv[i][1]){
            debugMode == TRUE;
            printf ("\n");
            }
    }


}

【问题讨论】:

  • 你的程序叫什么名字?
  • 如果是-daprogram,它将正常工作...(提示:for (i = &lt;?what?&gt;
  • 请注意,比较 debugMode == TRUE; 没有任何用处。我认为这与您的实际代码不够接近。
  • 哦,废话,你是对的。我忘记设置了。虽然它仍在评估为真,这很奇怪。
  • 就目前而言,您可以比较您打算分配的位置。显示的代码不会重现问题,因此我们无法帮助您调试问题。请考虑删除该问题,直到您可以创建一个演示实际问题的 MCVE (minimal reproducible example),然后在编辑后恢复它。或者干脆删除它。

标签: c linux arguments


【解决方案1】:

这里你的作业有问题。

 debugMode == TRUE;

上面的语句没有将 TRUE 分配给 debugMode 并且没有做任何有用的事情!你可能在这里有简单的复制+粘贴问题!使用:

  debugMode = TRUE;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多