首页 > 后端开发 > C++ > 如何解决 C 中的'变量的多重定义”错误?

如何解决 C 中的'变量的多重定义”错误?

Susan Sarandon
发布: 2024-11-30 13:10:11
原创
250 人浏览过

How to Resolve

C 中变量的多重定义

在 C 项目中处理多个文件时,您可能会遇到与变量的多个定义相关的错误。考虑以下情况:

FileA.cpp:

#include "FileA.h"

int main()
{
    hello();
    return 0;
}

void hello()
{
    //code here
}
登录后复制

FileA.h:

#ifndef FILEA_H_
#define FILEA_H_
#include "FileB.h"
void hello();

#endif /* FILEA_H_ */
登录后复制

FileB.cpp:

#include "FileB.h"

void world()
{
    //more code;
}
登录后复制

FileB.h:

#ifndef FILEB_H_
#define FILEB_H_

int wat;
void world();


#endif /* FILEB_H_ */
登录后复制

尝试编译此文件时代码中,你可能会遇到一个错误,指出“`wat'的多个定义。”

解释:

出现错误是因为你定义了一个全局变量 wat,在你的编译单元中两次。 FileA.h 和 FileB.h 都包含 wat 声明,在全局范围内定义了两次。

解决方案:

要解决此问题,请按照以下步骤操作步骤:

FileB.h:

extern int wat;
登录后复制

FileB.cpp:

int wat = 0;
登录后复制

通过使用 extern FileB.h,您通知编译器在其他地方存在名为 wat 的变量。在这种情况下,您可以在 FileB.cpp 中使用初始值设定项定义实际变量。

这种方法可确保 wat 在全局范围内声明一次,从而消除多重定义错误。

以上是如何解决 C 中的'变量的多重定义”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板