gpt4 book ai didi

c++ - 在 .cpp 中声明外部变量而不是头文件有什么用?

转载 作者:行者123 更新时间:2023-11-30 01:52:58 26 4
gpt4 key购买 nike

据我所知,extern关键字用于声明需要在多个文件中使用的全局变量。通常extern关键字定义在头文件中,并在许多.cpp或头文件中重用

昨天我在我们的代码库中看到一个特殊的(?)用法,作者在 .cpp 中声明一个外部变量并在 main.cpp 中定义该变量

d.cpp

extern int whatever; //yes, it is declared in .cpp but not .h

主要.cpp

#include "d.hpp"

int whatever = 100;

int main()
{
//do something
}

在 .cpp 而不是 .h 中声明外部变量有什么优点和缺点?以前从未听说过这样的技术,也无法通过 google 找到示例。

最佳答案

没有意义。如果 d.cpp 需要这个外部变量,那么它应该通过包含一些头文件来获取它。如果出于某种原因 main 的作者出于某种原因决定将“whatever”称为“int whatever”更好,您将遇到难以发现的链接器错误。如果 main 的作者将其更改为“char whatever”;然后每当 d.cpp 写入它认为是“extern int whatever”的内容时;它会覆盖一些内存,导致可能很难找到错误。

关于c++ - 在 .cpp 中声明外部变量而不是头文件有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23712327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com