如果有一个完整的项目是用全局变量编写的,我应该用passby-reference替换吗?

如果有一个完整的项目是用全局变量编写的,我应该用passby-reference替换吗?,c,pass-by-reference,global,C,Pass By Reference,Global,我完成了一个在C语言中严重依赖字符串操作的项目。问题是我应该改为通过引用传递全局变量吗?代码长度超过300行,全局变量似乎运行良好。我读过其他文章,认为pbr可以提高可读性 我有大约6个全球VAR。您应该始终保持尽可能小的状态。拥有大状态(大致上:在代码中的任何一点,可访问(可靠)变量的数量都很高)意味着在每个点上承担更多的责任,维护更困难,阅读更不直观 所以,是的,全局变量只在你无法忍受将它们传递给每个小函数的地方 如果你有一个一次性的程序,全局状态显然是可以的,但是你通常不会从C开始 6全局

我完成了一个在C语言中严重依赖字符串操作的项目。问题是我应该改为通过引用传递全局变量吗?代码长度超过300行,全局变量似乎运行良好。我读过其他文章,认为pbr可以提高可读性


我有大约6个全球VAR。

您应该始终保持尽可能小的状态。拥有大状态(大致上:在代码中的任何一点,可访问(可靠)变量的数量都很高)意味着在每个点上承担更多的责任,维护更困难,阅读更不直观

所以,是的,全局变量只在你无法忍受将它们传递给每个小函数的地方

如果你有一个一次性的程序,全局状态显然是可以的,但是你通常不会从C开始


6全局变量听起来不多,但你不能概括。

在C@AntoineMathys中没有按引用传递的东西。@AntoineMathys:不,你是按值传递指针地址。指针不是引用(反之亦然)。指针表示引用,即指向内存中某个位置的引用。它们与C++语言概念中的引用不一样,但这不是C++相关的。全局变量可以严重地抑制代码的重用。如果您认为代码不会被重用,那么全局代码可能不会有多大影响。如果代码可能是库的基础,那么全局变量是有问题的。如果代码可能用于多线程应用程序,则全局变量需要同步。全局常量不是什么问题,尽管任何全局常量都是“名称空间污染”的来源,并可能导致命名冲突。在多文件程序中,使用尽可能多的静态(而不是全局)函数和变量。对于线程安全,甚至避免静态变量。保持,我很困惑,所以C中的指针通过本质上与C++中的按引用传递相同的功能吗?