"静态分配"是什么意思?

时间:2015-06-02 00:25:38

标签: c pthreads

http://linux.die.net/man/3/pthread_mutex_init

  

如果默认互斥锁属性合适,则为宏   PTHREAD_MUTEX_INITIALIZER可用于初始化互斥锁   静态分配。效果应相当于动态   通过使用参数attr调用pthread_mutex_init()进行初始化   指定为NULL,但不执行错误检查。

我知道动态分配。 "静态分配"是什么意思?

我的问题是要理解"静态"分配。我在手册页中发布了引用,仅提供上下文。

1 个答案:

答案 0 :(得分:3)

静态分配意味着变量是在编译时分配的,而不是在运行时分配的。在C中,这可以是文件范围的全局变量,也可以是函数中的static变量。

这里有一个很好的概述: http://en.wikipedia.org/wiki/Static_memory_allocation

在调用函数时分配堆栈上的变量(即,没有static关键字的函数中的局部变量),有时在递归调用函数时多次分配。因此,它们在概念上与静态内存分配(每个程序只发生一次)不同。