http://linux.die.net/man/3/pthread_mutex_init
在默认互斥体属性合适的情况下,宏 PTHREAD_MUTEX_INITIALIZER 可用于初始化静态分配的互斥体。除了不执行错误检查外,效果应等同于通过调用 pthread_mutex_init() 并将参数 attr 指定为 NULL 进行动态初始化。
我知道动态分配。“静态分配”是什么意思?
我在这里的问题是理解“静态”分配的含义。我发布了手册页中的引用以提供上下文。
静态分配意味着变量在编译时分配,而不是在运行时分配。在 C 中,这可以是文件范围内的全局变量或static函数中的变量。
在这里可以找到一个很好的概述:http : //en.wikipedia.org/wiki/Static_memory_allocation
堆栈上的变量(即函数中没有static关键字的局部变量)在函数被调用时分配,有时在函数被递归调用时多次分配。所以它们在概念上不同于静态内存分配(每个程序只发生一次)。