gpt4 book ai didi

c++ - C++ : extern for local variables 中 R 的 <<- 的等价物

转载 作者:行者123 更新时间:2023-11-30 03:26:09 24 4
gpt4 key购买 nike

我已经在 C++ 中为一个函数定义了一个本地变量,但希望它可以被包含在单独文件中的另一个 C++ 函数访问。

在 R 中,<<- 允许通过复制全局访问局部变量。

在 C++ 中是否有等同于 <<- 的等效项,允许我通过另一个 C++ 文件中的 extern 声明调用局部变量(否则未全局定义)?

下面的代码可以正常工作吗?

例如,访问y:

### File 1.cpp ###
void func() {
const std::vector x
int y = x.size()
}

### File 2.cpp ###
extern int y
y // Call y somewhere else within program

最佳答案

在 C++ 中,函数不能将声明泄漏到封闭范围中。您可以做的最接近的事情是:

void f() {
extern int x;
}

这会导致 x 引用程序中其他地方定义的全局变量。另一个翻译单元中的另一个函数,包含相同的声明,然后可以引用相同的变量。但是,这两个声明都定义变量,您必须在全局范围内提供一个定义以便程序链接。

如果是你需要的全局变量,你应该定义一个全局变量。然而,可变的全局状态通常会使程序更难推理,因此通常最好尽可能避免使用它。通常,您会希望构建您的程序,以便两个函数尽可能通过函数调用机制相互通信(在函数参数中传递信息),或者最坏的情况是,共享封装在一个类中的可变状态,以便它可以'泄漏到类之外。

关于c++ - C++ : extern for local variables 中 R 的 <<- 的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48512285/

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