10.9始终确保全局变量用的内存空间
C语言中,在函数外部定义的变量 称为全局变量,在函数内部定义的变量称为局部变量。
代码清单10-6的C语言源代码中定义了初始化(设定了初始值)的a1~a5这5个全局变量,以及没有初始化(没有设定初始值)的b1~b5这5个全局变量,此外还定义了c1~c10这10个局部变量,且分别给 各变量赋了值。
将代码清单10-6变成汇编语言的源代码后,结果就如代码清单10-7所示。
正如本章前半部分所讲的那样,编译后的程序,会被归类到名为段定义的组。初始化的全局变量,会像代码清单 10-7的(1)那样被汇总到名为 DATA 的段定义中,没有初始化的全局变量,会像(2)那样被汇总到名为 BSS的段定义中。指令则会像(3)那样被汇总到名为TEXT 的段定义中。这些段定义的名称是由 Borland C++的使用规范来决定的。 DATA segment和 DATAends、BSS segment和 BSS ends TEXT segment 和 TEXT ends,这些都是表示各段定义范围的伪指令。