首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

内联函数中定义的变量会不会之后还能使用

2013-01-07 
内联函数中定义的变量会不会以后还能使用。比如 inline void set(){int a}这个a 的生命周期是如何的呢。如

内联函数中定义的变量会不会以后还能使用。
比如 

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对应的汇编并单步执行观察相应内存和寄存器变化。)

[解决办法]
只能苟活于该函数内 出函数则死

热点排行