gpt4 book ai didi

c - 将 C 结构对象实例化为全局变量是不好的做法吗?

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

这是一个示例代码,声明了 struct A,然后在 main 中定义了它的实例“instanceOfA”,因此它成为局部变量并在其他函数中访问它,我应该将它作为参数传递。另一方面,声明了 struct B 并将其实例定义为全局变量,这使我可以在需要的任何地方直接使用“instanceOfB”,而不是将其作为参数传递。我现在唯一应该担心的是某些函数可能会覆盖“instanceOfA”标识符,对吧?因为它的变量(a,b,c)已经在它自己的“命名空间”中。那么将结构对象定义为全局变量是一种不好的做法吗?你会怎么办?抱歉我的英语不好。

struct A {
int a,b,c;
};
struct B {
int a,b,c;
} instanceOfB;

int main(void) {

struct A instanceOfA;
instanceOfA.a = 5;

instanceOfB.a = 10;

}

最佳答案

我不确定问题到底是什么,但这里有一些想法。

instanceOfB 是一个全局变量,对吧?所以,它是一个 evil that should be avoided if not strictly necessary .

相反,函数体内的 struct A instanceOfA; 对我来说看起来不错,尽管我们通常将类型从 struct 命名空间移动到全局命名空间 using typedef struct idiom减少打字。

关于c - 将 C 结构对象实例化为全局变量是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28371058/

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