#pragmaonce在VisualStudio中不起作用

我正在使用 Visual Studio 并且 #pragma once 不起作用。这是我得到的以下错误:

1>namespaces.obj : error LNK2005: "int a" (?a@@3HA) already defined in another.obj
1>fatal error LNK1169: one or more multiply defined symbols found

这些是文件

主程序

#include <iostream>
#include "Header.h"

int main()
{
    std::cout << a;
}

另一个.cpp

#include <iostream>
#include "Header.h"

void hi() {
    std::cout << a;
}

头文件.h

#pragma once

int a = 5;

回答

#pragma once 并不意味着“仅将我包含在一个源文件中”,而是意味着“仅在一个源文件中包含我一次”。


以上是#pragmaonce在VisualStudio中不起作用的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>