哪些函数可以访问与它们出现在同一文件中的全局变量?

问题描述 投票:0回答:1

我向 ChatGPT 和 Google Bard 询问了一个 C++ 问题:“哪些函数可以访问与它们出现在同一文件中的全局变量?”

他们回答说“声明全局变量的同一文件中的任何函数都可以访问该全局变量。全局变量具有程序级作用域,这意味着可以从同一程序(文件)内的程序的任何部分访问它们。

无论函数是在全局变量声明之前还是之后定义的,它仍然可以访问和修改该变量。

我期望可以访问在声明全局变量之前定义的函数中的全局变量,但我无法访问它。 IDE 抛出错误,

“错误:'x' 未在此范围内声明 cin >> x;"

ChatGPT 和 Google Bard 是否回答错误或者我的代码还有其他问题?

我的代码:

#include <iostream> using namespace std; int myFun() { return x*2; } int x; int main() { cout << "Enter value in global variable: "; cin >> x; cout << myFun(); return 0; }
    
c++ function global-variables global
1个回答
0
投票
你应该听编译器的指令,而不是用你在网上找到的任何垃圾来喂养机器人。这就是我的编译器所说的:

<source>: In function 'int myFun()': <source>:5:12: error: 'x' was not declared in this scope 5 | return x*2; | ^
仅此而已。 gcc 是正确的。在声明之前您无法访问 

x

。 C++ 代码从上到下进行解析(模板除外)。您的代码中没有其他错误。

聊天机器人可以为您提供帮助,但它们无法教您语言如何工作。不要依赖他们所说的来获取知识。

© www.soinside.com 2019 - 2024. All rights reserved.