c++ - 在三个src文件中使用extern

标签 c++ c extern

我有三个文件: 标题.h

#ifndef _HEADER_
#define _HEADER_

int var = 0;

#endif

src1.cpp

#include "somefile.h" 
extern int var;
int main(void) { // error: first defined here
    var = 10;
    return 0;
}

src2.cpp

#include "somefile.h"
extern int var;

int foo () { // error : multiple definition of 'var'
    return 0;
}

我不知道为什么在这种情况下不能使用“extern”关键字。我该如何修复这些错误?

最佳答案

声明

int var = 0;

在一个cpp文件中而不是在头文件中

然后把

extern int var;

仅在头文件中

关于c++ - 在三个src文件中使用extern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15641585/

相关文章:

c - 外部存储类的理解

c++ - 使用不完整类型 void 的模板类

c - 递归函数中的 malloc 和 free

java - C JNI 帮助处理复杂代码

C -- 通过 const 声明访问非常量

c - 外部函数原型(prototype)?

c++ - 指向子类的指针

c++ - 英特尔 TBB 中的任务延续

c++ - 为什么 auto 类型不能与 for 语句 C++ 中的其他内置类型共存

c - fscanf/fscanf_s 覆盖数组