gpt4 book ai didi

c - 为什么要在 C 中将 extern 结构体传递给函数?

转载 作者:行者123 更新时间:2023-11-30 16:58:21 25 4
gpt4 key购买 nike

我见过一个例子,有人将 extern 结构传递给 C 中的函数。是否有充分的理由这样做而不是使用 extern 结构而不将其作为参数传递?这个解决方案是否更加封装?

//Test.h
struct TEST_STRUCT
{
int member;
};
extern struct TEST_STRUCT test_struct;

//Test.c
struct TEST_STRUCT test_struct = {0};

现在我可以决定通过这个test_struct到我的函数或在我的函数中设置我的“成员”变量非常舒服,如下所示:

test_struct.member = 10;

最佳答案

通常最好避免使用全局变量,并使用参数将函数所需的信息传递给该函数,而不是依赖全局变量。除此之外,你只能有一个全局变量;您可能有许多函数需要在不同时间调用具有不同值的一个函数。然而,很难判断另一个函数是否依赖于全局变量的当前值。

所以,是的,显式传递(指向)结构通常更好地引用全局变量 - 它更好地封装了信息。

关于c - 为什么要在 C 中将 extern 结构体传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38923029/

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