#pragma once不会阻止多个变量定义

时间:2013-01-20 08:29:24

标签: c++

我经常使用#pragma once并且在处理标头时似乎工作正常但由于某种原因,以下内容会创建多个定义的链接器错误:

#pragma once
int someVariable=5;

pragma不应该阻止这个吗?

1 个答案:

答案 0 :(得分:5)

  

这个pragma不应该阻止它吗?

不,在这种情况下,如果此头文件包含在多个位置,则会创建someVariable的多个定义。如果B.h和C.h都包含你的头文件,那么将创建两个someVariable。

更好的方法是只在一个.cpp文件中定义变量,在其他地方使用extern