静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈,速度快很多。 我就晕了。。 对这句话的理解是,static函数会被存放到其他地方
而不是栈中。 大家能帮我确认一下这个吗?
static 函数不是放在栈中的吗
答案:1 悬赏:40 手机版
解决时间 2021-03-18 11:00
- 提问者网友:夢醒日落
- 2021-03-18 07:01
最佳答案
- 五星知识达人网友:渡鹤影
- 2021-03-18 07:58
静态函数会存储在全局数据区,类似汇编语言中的.data段
局部变量在进程栈里,每个函数调用完成都有堆栈平衡操作,局部变量在此时释放
函数是执行的指令代码,在代码段。
代码段、数据段、堆栈段,是一个进程地址空间的分划。
怎么他们说成函数也存在数据区??函数应该是代码呀,当然是在代码段了。
《C专家编程》作者说过这个问题,就是static这个关键字是安排的不和理的,是C语言的多做之过
static对于变量来说,是说地址保存在全局数据区,函数退出变量仍然保存。
static对于函数来说,是指此函数仅对文件可见,
就是说在其他文件里面不能使用这个文件。是属于访问控制。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯