【发布时间】:2014-02-25 05:19:03
【问题描述】:
我知道指针通常是在声明时分配的,但我想知道是否有任何方法可以在 C 中创建全局指针。例如下面的代码:这是一个好习惯吗?
static int *number_args = NULL;
void pro_init(int number)
{
number_args = &number; /* initialize the pointer value -- is this okay? */
}
【问题讨论】:
-
即使不赋值,也会默认赋值为零
-
不是一个好习惯。数字基本上在堆栈上。如果将全局指针分配给堆栈地址,则函数退出时它将变得无效..!!
-
你问了两个完全不同的问题。有什么办法吗?是的,当然......像你一样在文件范围内声明指针。 (对于 global,省略
static。)这是一种好的做法吗?应尽可能避免使用全局变量。但除此之外,正如 Manty 所说,您的 specific 用法是虚假的。 你想做什么?因为你没有展示或说明你打算如何使用number_args,所以无法判断。