【发布时间】:2016-01-17 00:58:09
【问题描述】:
我想用 C 语言设置一个 int 数组的全局引用,但我想在 main 函数中初始化它(实际上是用户要声明它的大小)。有人知道这是怎么做到的吗?
提前致谢!
【问题讨论】:
-
使用全局变量通常不是一个好的解决方案,为什么不将数组及其大小从其他模块传递给函数?
-
形式上,你不能那样做。全局数组的大小在编译时是固定的。您可以通过使用全局指针并在任何代码使用它之前分配正确的空间来实现等效效果。但通常最好避免使用全局变量。这并不总是一个好主意:
stdin、stdout和stderr是全局变量,如果不是,那将是一个令人困惑的麻烦。 OTOH,errno是全球性的并设法提出问题,尽管该标准现在已经部分消除了其中最糟糕的问题。