何时分配静态函数变量?

0 c

我有一个关于静态变量的内存分配的问题.请查看以下代码段.

#include<stdio.h>
#include<conio.h>

void fun();

static int a;

void main()
{
    fun();
    getch();
}

void fun()
{
    static int b;
}
Run Code Online (Sandbox Code Playgroud)

有人可以static int b在函数中分配内存时fun(在main执行之前或函数所在位置时)向我解释.我知道静态的内存只会被分配一次,但我想知道何时会为它分配内存.请解释.

我使用的是64位处理器,turbo c编译器,windows 7操作系统.

Cog*_*eel 7

加载程序时会分配静态变量的内存.函数中的静态变量在第一次调用函数之前初始化.

  • 在这种情况下,由于没有指定值,我希望在程序的BSS段中分配空间.这只是加载程序在运行时分配的0初始化内存块. (2认同)