【问题标题】:Checking a value defined in a header from a function in another file从另一个文件中的函数检查头文件中定义的值
【发布时间】:2011-08-25 13:06:01
【问题描述】:

我有一个头文件 (head.h),我在其中定义了布尔值:

bool flag = false;

在main.c中,我有一个函数:

void WINAPI function (HINSTANCE hThisInstance,
                      HINSTANCE hPrevInstance,
                      LPSTR lpszArgument,
                      int nFunsterStil)
{
    if (flag == false)
    {
    //Some action
    flag = true;
    }
}

即使 main.c 以以下行开头,布尔值 'flag' 也无法识别:

#include "head.h"

...为什么?

【问题讨论】:

  • 你已经给 flag 赋值了吗?
  • 这是你标题的唯一内容吗?
  • 在这种情况下,最好的办法是创建最小的实际程序来显示问题。当您仅发布上面的代码时,它显然应该可以工作(如果您要测试该代码,可能会这样做)。 REAL 代码中可能还有其他原因导致您看到的问题。删除代码和测试可以帮助您找到它。
  • flag 无论如何都应该是外部的。
  • @Etienne extern 默认假设在非 const 变量的全局(命名空间)范围内。

标签: c++ function header boolean


【解决方案1】:

我相信您将#include "head.h" 放在main.c 的顶部(在#include "stdafx.h" 之前)并且您使用预编译的标头(至少这是我能够使用Visual Studio 重现您的问题的方式)。 #include "stdafx.h" 应该永远是第一位的。

【讨论】:

    【解决方案2】:

    “不被认可”是什么意思?说flag is not defined 是否编译失败?

    否则,在你展示的代码中,存在flag从未设置过的小问题。

    【讨论】:

    • 我已经相应地更新了代码,但遇到了同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多