gpt4 book ai didi

c - 如何从不同的函数访问 C 中的变量?

转载 作者:行者123 更新时间:2023-11-30 19:42:50 25 4
gpt4 key购买 nike

我的问题是函数 malloc_queue() 如何在不提供任何参数的情况下访问 init_queue() 中的变量!

例如:

main.c:

if (init_queue()) {
malloc_queue()
}

init_queue() 创建变量 que:

int init_queue{
struct Queue *que;
return 1;
}

malloc_queue() 想要对 init_queue() 中的变量 que 执行某些操作:

void malloc_queue{
struct Queue *que = (struct Queue*)malloc(sizeof(struct Queue));
return;
}

但这不起作用,因为 malloc_queue 不知道 que 是什么。有没有任何可能的方法而不给出任何参数?

最佳答案

也许您需要函数外部的静态变量,该变量在定义后在驻留文件内具有作用域。

检查此代码:

#include <stdio.h>

static int x = 0;
void a() {
x = 5;
}
void b() {
x*=2;
}
int main(int argc, char * argv[]) {
printf("%d\n", x);

a();
printf("%d\n", x);

b();
printf("%d\n", x);

return 0;
}

正如评论所建议的那样,阅读有关 c 作用域的内容。

<小时/>

如果您需要声明主类型以外的结构,则可能需要将指向结构的指针声明为函数外部的静态变量,然后分配内存(例如malloc()) 在您的函数之一内。

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

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