gpt4 book ai didi

c++ - 如何引用与 C++ 中的局部变量同名的全局变量?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:49 32 4
gpt4 key购买 nike

如果有一个全局变量并且函数有一个同名参数,并且期望的结果是局部变量和全局变量的总和,那么在这种特定情况下我们如何引用全局函数?我知道这样做不是个好主意。但只是出于好奇。

int foo = 100;

int bar(int foo)
{
int sum=foo+foo; // sum adds local variable and a global variable
return sum;
}

int main()
{
int result = bar(12);
return 0;
}

最佳答案

目前最好的选择是重命名函数参数,使其不与全局变量冲突,因此无需规避。

假设重命名选项 Not Acceptable ,使用 ::foo 在全局范围内引用 foo:

#include <iostream>

int foo = 100;

int bar(int foo)
{
int sum = foo + ::foo; // sum adds local variable and a global variable
return sum;
}

int main()
{
int result = bar(12);
cout << result << "\n";
return 0;
}

本地名称和全局名称之间的冲突是不好的——它们会导致混淆——因此值得避免。您可以使用 GCC 的 -Wshadow 选项(g++,对于 C 代码使用 gcc)来报告阴影声明的问题;结合-Werror,它停止代码编译。

关于c++ - 如何引用与 C++ 中的局部变量同名的全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22492318/

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