gpt4 book ai didi

c - C中如何使用全局变量在不同的函数中使用同一个变量

转载 作者:太空宇宙 更新时间:2023-11-04 08:38:26 25 4
gpt4 key购买 nike

我是 c 的新手,我正在尝试弄清楚如何使用全局变量。如果我在 main 中定义一个变量,则在另一个函数中出现 undefined variable ,但如果我在所有函数之外定义它,我想要全局的所有变量都是未定义的。有关如何正确使用它们的任何提示?

最佳答案

您将它们定义在 main 之上,在您的 includes 之下:

#include <stdio.h>

int foo;
char *bar;

void changeInt(int newValue);

int main(int argc, char **argv) {
foo = 0;
changeInt(5);
printf("foo is now %d\n", foo);
return 0;
}

void changeInt(int newValue) {
foo = newValue;
}

顺便说一句,使用全局变量不是最佳实践,尤其是在多线程的东西中。在某些应用程序中它非常好,但总有更正确的方法。更恰本地说,您可以在 main 中声明您需要的变量,然后为修改它们的函数提供一个指向它的指针。

即。

void changeInt(int *toChange, int newValue);

int main(int argc, char **argv) {
int foo = 0;
changeInt(&foo, 5);
printf("foo is now %d\n", foo);
return 0;
}

void changeInt(int *toChange, int newValue) {
*toChange = newValue; // dereference the pointer to modify the value
}

关于c - C中如何使用全局变量在不同的函数中使用同一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25067952/

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