int aaa=0;
int bbb=10;
void Main()
{
...............
}
aaa会分配到ZI区中,连接器会输出ZI区域的起始地址和大小,系统启动时初始化
bbb什么时候初始化?
18 个解决方案
#1
跟这段话一样:aaa会分配到ZI区中,连接器会输出ZI区域的起始地址和大小,系统启动时初始化
bbb什么时候初始化,全局变量一般分配在栈区。
bbb什么时候初始化,全局变量一般分配在栈区。
#2
全局变量 会在执行main函数之前进行初使化
#3
全局变量和静态变量分配在静态存储区,生命周期直到程序结束退出!
#4
aaa初始化之后
#5
bbb和aaa都在全局数据区,在main函数开始前初始化。bbb在aaa后初始化。
#6
是的,在main前初始化。例如定义全局对象,那么它的构造函数将比main先得到执行
#7
学习了~~~~~~~~~
#8
据我所知,C/C++内存区域有:代码区、堆区、栈区、全局/静态变量区、常量区。
没听说过ZI区域,什么是ZI区域?
没听说过ZI区域,什么是ZI区域?
#9
全局变量怎么可能在栈区,c的内存管理策略主要分为三种,静态区,动态区。静态区存储的主要是全局变量,静态变量(static关键字修饰的变量),动态区分为两种栈,堆。临时变量一般在栈中,而堆存储的一般是通过malloc动态申请的空间。栈的空间由系统管理,但是堆的空间是由我们自己管理的,否则会内存泄漏。
#10
楼上很对
#11
这话问的
aaa初始化时候就初始化bbb楼喽
aaa初始化时候就初始化bbb楼喽
#12
顶楼上
#13
全局变量反汇编出来是DB DW等声明的
#14
如果是win,想知道真实的情况问盖茨要win程序的初始化代码。
如果不是其他开源的OS,看启动代码或者初始化代码不就清楚了?
如果不是其他开源的OS,看启动代码或者初始化代码不就清楚了?
#15
现在的编译器都不一定放在那里的,找老谭这类老书的解释是全局变量和静态变量分配在静态存储区,生命周期直到程序结束退出!但现在的编译器都不一定的,还是研究汇编代码
#16
aaa, bbb 是全局变量,分配在静态存储区, 在编译时初始化.
#17
bbb和aaa一样
#18
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
不要迷信书、考题、老师;
要迷信CPU、编译器、调试器。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
不要迷信书、考题、老师;
要迷信CPU、编译器、调试器。
#1
跟这段话一样:aaa会分配到ZI区中,连接器会输出ZI区域的起始地址和大小,系统启动时初始化
bbb什么时候初始化,全局变量一般分配在栈区。
bbb什么时候初始化,全局变量一般分配在栈区。
#2
全局变量 会在执行main函数之前进行初使化
#3
全局变量和静态变量分配在静态存储区,生命周期直到程序结束退出!
#4
aaa初始化之后
#5
bbb和aaa都在全局数据区,在main函数开始前初始化。bbb在aaa后初始化。
#6
是的,在main前初始化。例如定义全局对象,那么它的构造函数将比main先得到执行
#7
学习了~~~~~~~~~
#8
据我所知,C/C++内存区域有:代码区、堆区、栈区、全局/静态变量区、常量区。
没听说过ZI区域,什么是ZI区域?
没听说过ZI区域,什么是ZI区域?
#9
全局变量怎么可能在栈区,c的内存管理策略主要分为三种,静态区,动态区。静态区存储的主要是全局变量,静态变量(static关键字修饰的变量),动态区分为两种栈,堆。临时变量一般在栈中,而堆存储的一般是通过malloc动态申请的空间。栈的空间由系统管理,但是堆的空间是由我们自己管理的,否则会内存泄漏。
#10
楼上很对
#11
这话问的
aaa初始化时候就初始化bbb楼喽
aaa初始化时候就初始化bbb楼喽
#12
顶楼上
#13
全局变量反汇编出来是DB DW等声明的
#14
如果是win,想知道真实的情况问盖茨要win程序的初始化代码。
如果不是其他开源的OS,看启动代码或者初始化代码不就清楚了?
如果不是其他开源的OS,看启动代码或者初始化代码不就清楚了?
#15
现在的编译器都不一定放在那里的,找老谭这类老书的解释是全局变量和静态变量分配在静态存储区,生命周期直到程序结束退出!但现在的编译器都不一定的,还是研究汇编代码
#16
aaa, bbb 是全局变量,分配在静态存储区, 在编译时初始化.
#17
bbb和aaa一样
#18
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
不要迷信书、考题、老师;
要迷信CPU、编译器、调试器。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
不要迷信书、考题、老师;
要迷信CPU、编译器、调试器。