当我写作
int main()
{
int j;
}
Run Code Online (Sandbox Code Playgroud)
'j'的内存是在编译时分配的,但是在编译期间?当内存分配给变量时,编译的各个阶段是什么?如果j是全局的怎么办?
我不确定这个问题有多合适,但是 -
我很好奇编译器如何在构造对象(内存分配)之前为内存设置内存(甚至在构造函数被调用之前!).
原始数据类型如何发生?
这听起来有点天真,但具体到底是什么?
它是完全运行时间过程,或者它(编译)有任何计划想要做到这一点,要做到这一点,在运行时,它在手之前决定编译时.我根本不知道!
对象,无论是原始类型,指针还是大类的实例,都占用一定的已知内存量.那个记忆必须以某种方式留给对象.在某些情况下,初始化该预留内存.初始化是构造函数的作用.它们不会留出(或分配)存储对象所需的内存.该步骤在调用构造函数之前执行.
换句话说,就时间而言,什么样的变量的内存分配何时发生呢?在编译(或运行时)的哪一步?