在C语言中,静态类成员(如静态变量和静态函数)的内存分配通常发生在程序开始执行时,即在程序的main函数执行之前。
以下是关于静态成员内存分配的几个关键点:
1. 静态变量:
静态变量在程序开始执行时分配内存,并在整个程序运行期间保持其值。
静态变量存储在程序的静态存储区域(通常是程序的.bss段),这部分内存在整个程序运行期间都是可用的。
2. 静态函数:
静态函数的内存分配与静态变量类似,也是程序开始执行时分配。
静态函数的作用域仅限于其所在的文件,这意味着它们不能被其他文件中的函数调用。
3. 全局静态变量:
如果一个静态变量在全局范围内声明(即在所有函数外部声明),那么它的内存也会在程序开始时分配。
4. 静态成员函数:
静态成员函数的内存分配与静态变量相同,也是程序开始时分配。
以下是一个简单的例子:
```c
include
static int staticVar = 10; // 静态变量
static void staticFunc() { // 静态函数
printf("Static function called, staticVar = %dn", staticVar);