c语言中函数调用后仍保留 c语言函数调用注意事项

在C语言中的函数调用过程中保留现场怎么回事?

保留现场

创新互联主要从事成都做网站、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务德化,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

就是字面的意思,保留现场

比如,你要到某地去,走在路上时,看到路边有个屋子,你想去看一下,但是又怕迷路了,那么只好记住你现在所在的位置(也就是保留现场)。然后到屋子参观一番后,离开屋子时,只要返回到之前所记的位置就行了。

函数调用时,具体要保留那些数据呢,一般来说不同编译器不同的调用方法要保留的数据都会不同。那些寄存器的值一般都会保留的,保留的数据一般是放在程序的堆栈中。

其实函数的返回也就是恢复现场

c语言中,静态局部变量和静态全局变量的值,在函数调用结束后都保留原值吗?

未初始化的静态局部变量存放BSS段中,初始化了的静态局部变量存放于全局区,静态全局变量存放于全局区,,函数调用完了,释放自己使用的栈内存。如果函数中有改变全局区或BSS段的变量,函数调用完后,这些变量的值就是函数里修改后的值。

C语言中怎样在函数被调用后保留其申请的空间不被销毁?

嘿嘿,大多数教科书都是这样写的,但以后你写程序时也这么写的话,老板直接扣你一半工资!

因为这种情况会产生野指针。

你可以这样试下:

首先定义指针并申请内存,然后赋值,然后再释放p所指内存,最后切记:释放了内存后一定要加上一句:p = NULL,因为虽然p所指内存被释放了,但p还是指向原地址,这样野指针就产生了,而且这种情况调试时很难发现


网页名称:c语言中函数调用后仍保留 c语言函数调用注意事项
当前路径:http://pwwzsj.com/article/doessoe.html