c - 如何避免 C 中的全局变量?

标签 c global

作为初学者,为了避免过度使用全局变量,我到处阅读。那怎么办呢?我的低技能失败了。我最终传递了大量的结构,它比使用全局变量更难阅读。解决此问题/应用程序结构设计的技巧?

最佳答案

根据变量的作用,全局范围可能是最好的范围。 (认为​​标志表示中断已经到达,并且应该在计算循环中间的方便时间处理。)

通过使用全局变量,小型实用程序通常感觉更简洁(我特别想到小型语言解析器);但这使得将来将小型实用程序集成到大型程序中变得更加困难。总有取舍。

但“正确”的数据组织很有可能不会让人觉得那么麻烦。如果您在此处发布代码,有人可能会建议更清晰的布局,但当代码超出易于理解的小样本时,真正的问题就来了。

我有很多最喜欢的编程风格书籍,但我认为我所知道的最好的解决这种情况的书籍是 The Elements of Programming Style ,克尼汉和普劳格着。它很旧,很难找到,但很短,很可爱,非常值得在某个地方使用。

它没有那么短,没有那么甜美,但仍然值得一试Code Complete, 2nd edition .它更加详细,提供了更多的代码,并提供了设计软件所涉及的更多多样性。它非常好,但可能更令人生畏。

没有什么比学习大师更好的了:Advanced Programming in the Unix Environment, 2nd Edition 中的代码是非凡的,非常值得每一个小时的学习。

当然,经验总是存在的,但这需要时间来获得。从自己的错误中吸取教训往往比从别人的错误中吸取教训更牢固。所以坚持下去。 :)

关于c - 如何避免 C 中的全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3386569/

相关文章:

c - `off_t` 之前的预期表达式

rust - 比 thread_local 更有效的替代方案!和lazy_static?

php - PHP header 中的数组在 WordPress 中不是全局的

ruby-on-rails - RubyMine - ruby​​ - [global] 在 rvm 中是什么意思,我应该使用全局还是非全局 sdk

ruby-on-rails - 所有模型的 ActiveRecord 全局回调

variables - 全局宏什么时候删除?

与声明的 int 函数冲突的类型

在 C 中比较 ASCII 字符串的数值

c - 多线程应用程序在 Release模式下崩溃

无论我输入什么,C double 都为 0