我有一个全局变量结构:
typedef struct {
int myvar1;
int myvar2;
int myvar3;
...
int myvar10;
} t_myStruct myGlobalData;
我无法避免这种全局结构,所以我必须使用它。我有三个使用它的选项:
在任何函数中使用“原样”全局变量。IE:
int myFunc(void) { myGlobalData.myvar1 = ... myGlobalData.myvar10 = myGlobalData.myvar5 + ... }
声明一个本地指针并使用它:
int myFunc(void) { t_myStruct * p; p = &myGlobalData; p->myvar1 = ... ... p->myvar10 = p->myvar5 + ... }
使用 local var 然后复制到全局结构:
int myFunc(void) { t_myStruct localStruct; localStruct.myvar1 = ... localStruct.myvar10 = localStruct.myvar5 + ... myGlobalData = localStruct ; }
可以解释一下一般来说什么是最好的方法,为什么?