标题:
关于C语言函数资源自动释放的问题
[打印本页]
作者:
PDDDF
时间:
2019-12-18 17:22
标题:
关于C语言函数资源自动释放的问题
栗子:
void (*G)();
void main(void)
{
G = &GKD;
while(1)
{
key_process();
DelayMs(5);
}
}
void key_process()
{
if(AN == 0)
{
DelayMs(2);
if(AN == 0)
{
(*G)();
}
}
}
void GKD()
{
.....
}
问题:main中调用了key_process,key_process用指针调用了GKD,当按键按下CPU跳去执行GKD时,key_process和main两个函数占用的资源有没有被释放,有的话哪个被释放了,网上说的不清不楚,求大神解答
作者:
SroneBridge
时间:
2019-12-18 21:47
都没有,GKD执行完后将返回key_process。key_process执行完后又返回main。
作者:
csmyldl
时间:
2019-12-18 21:55
这里所讲的资源主要是指内存资源,内存资源的释放主要看它的作用域,作用域只在子函数区域,其子函数执行结束就释放,但定义变量又分局部和全局,静态和动态,会不会释放看定义的方式,如果所有函数中的变量均是动态方式定义的,key_process和main两个函数占用的资源都会被释放。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1