为什么要将指针传递给全局结构?

use*_*210 8 c pointers

这可能是一个愚蠢的问题,但我正在审查一些代码,我只是没有看到这个人在做什么的重点.在一个C文件中,他定义了一个具有许多类型的许多元素的全局结构.因此,从函数"A"调用函数"B".在调用中,它们传递指向全局结构的指针,然后在函数"B"中完成一些操作并更新全局的一部分.现在这似乎是多余的过度杀伤,因为它已经是一个全球性的.如果结构是函数"A"的局部结构,我完全可以看到将地址传递给结构函数"B".但是,内存永久分配在C文件的最顶层.事实上,我可以争辩说,其他人在改变某些事情并且没有意识到他们已经创造了一个错误时存在潜在的问题.

所以我确信有一个"良好的编码实践"BKM或类似的东西这样做,但我只是看不到它.那么简而言之,为什么创建一个地址指针并在变量已经是全局变量时不必要地将其传递给函数?

mrb*_*mrb 11

传递指针是好的风格,主要是因为全局变形是坏的风格.原始开发人员可能正在考虑全局可能不是全局的可能性,或者接受它的函数可能在不同的变量上运行(可能也可能不是全局变量,但仍需要识别).