在C语言中,与其他编译语言一样,编译代码放入text段,而变量驻留在其他段中。
究竟是哪个存储器变量取决于变量如何定义。定义在所有函数之外的变量被认为是全局变量。
在任何变量前增加关键字static都会使该变量成为静态变量。
如果使用数据将静态变量或全局变量初始化了,它们就会存储在data内存段中,否则,这些变量就会存储在bss内存段中。
首先,必须使用用户名为malloc()的内存分配函数对对堆内存段中的内存进行分配。通常使用指针来引用堆中的内存。
最后,其余的函数变量存储在堆栈内存中。因为堆栈可以包含许多不同的栈帧,所以栈帧变量可以在不同的函数上下文内保持唯一。
1 |
|