内联函数中定义的变量会不会以后还能使用。
比如
inline void set()
{
int a;
}
这个a 的生命周期是如何的呢。如果在例外一个函数中使用set函数。
内联函数是将其铺开。
内联函数中不允许定义变量吗 ?
[解决办法]
写成inline的函数会被compiler通过自己的评估策略来决定是否进行调用点展开,每个compiler的策略不一样。如果确定可以展开,a会被mangling成某一个变量名存在于调用点附近。如果不能展开,就按照普通function处理。inline-function当然可以定义变量了。
[解决办法]
他的生命期就只限于函数体内
[解决办法]
VC调试时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。
(Turbo C或Borland C用Turbo Debugger调试,Linux或Unix下用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
[解决办法]
只能苟活于该函数内 出函数则死