C++跨多个文件使用布尔值



//main.cpp

#include <iostream>
#include "worldActions.h"
using namespace std;

bool worldEvents = false;

void worldReactions(bool world);
int main (int argc, const char * argv[])
{
    while (true)
    {
        if (worldAction == true)
        {
            worldEvents = true;
            worldReactions(worldEvents);
        }
        else
        {
            worldEvents = false;
            break;
        }
    }
    return 0;
}
/

/1.cpp

#include <iostream>
#include "worldActions.h"
using namespace std;
bool worldAction;

//页眉

#ifndef worldActions_h
#define worldActions_h
bool worldAction = true;
#endif /* defined(__asdf_Story__worldActions__) */

使用extern时,我会收到链接错误,当它不是时,我会收到重新定义错误。如何解决此问题,以便可以使用全局布尔值?

在标头中使用extern bool worldAction;并将定义放在 cpp 文件中。

您当前正在将全局worldAction编译到包含标头的每个文件中。 如果多个文件包含标头,或者(如在源文件中(任何其他文件定义了具有相同名称的变量,则会收到链接器错误。

要解决此问题,请将标头更改为仅声明变量

#ifndef worldActions_h
#define worldActions_h
extern bool worldAction;
#endif /* defined(__Julian_Story__worldActions__) */

并在源文件中定义/初始化它

#include <iostream>
#include "worldActions.h"
using namespace std;
bool worldAction = true;

使用关键字extern,如extern bool worldAction; & put 定义bool worldAction = true.cpp

相关内容

  • 没有找到相关文章

最新更新