当前位置: 首页 > news >正文

事业单位网站建设费入什么科目dw做网站站点

事业单位网站建设费入什么科目,dw做网站站点,wordpress顶部菜单设置,网站开发用什么框架合适在程序运行时,函数内的局部变量通常占用 栈(Stack)空间,但也有特殊情况。以下是详细说明: 1. 默认情况:局部变量存储在栈(Stack) 存储位置: 函数内的普通局部变量&#x…

在程序运行时,函数内的局部变量通常占用 栈(Stack)空间,但也有特殊情况。以下是详细说明:


1. 默认情况:局部变量存储在栈(Stack)

  • 存储位置
    函数内的普通局部变量(未用 static 修饰)存储在栈内存中

  • 特点

    • 动态分配:函数被调用时,局部变量在栈上分配;函数返回时,栈空间自动释放。

    • 生命周期:仅在函数执行期间存在。

    • 作用域:仅在函数内部可见。

    • 示例

      void func() {int a = 10;       // 局部变量a,存储在栈中char buffer[64];  // 局部数组buffer,也存储在栈中
      }

2. 特殊情况

(1) 静态局部变量(static 修饰)
  • 存储位置
    静态局部变量存储在 全局/静态数据段(.data 或 .bss,而非栈中。

  • 特点

    • 生命周期:从程序启动到结束,即使函数退出,变量依然存在。

    • 作用域:仅在函数内部可见(作用域未改变)。

    • 示例

      void func() {static int count = 0;  // 静态局部变量,存储在.data段count++;
      }
(2) 编译器优化:寄存器存储
  • 存储位置
    若开启编译器优化(如 -O2),某些局部变量可能直接存储在 寄存器(Register) 中,而非栈内存。

  • 特点

    • 访问速度极快,但寄存器数量有限(如 ARM Cortex-M 通常有 16 个通用寄存器)。

    • 编译器自动决定哪些变量放入寄存器(可通过 register 关键字建议,但现代编译器通常忽略)。

    • 示例

      void func() {register int i;  // 建议编译器将i放入寄存器(实际是否生效由编译器决定)for (i = 0; i < 100; i++) { ... }
      }

3. 栈 vs. 堆(Heap)的对比

特性栈(Stack)堆(Heap)
分配方式自动分配/释放(编译器管理)手动分配/释放(malloc/free
速度快(仅移动栈指针)慢(需查找可用内存块)
空间大小较小(嵌入式系统可能仅几KB)较大(受限于系统可用RAM)
碎片化可能产生内存碎片
典型用途函数调用、局部变量动态分配内存(如链表、大数组)

4. 栈的底层工作原理

  • 栈指针(Stack Pointer, SP)
    CPU 通过栈指针跟踪栈顶位置。函数调用时,栈指针下移(分配空间);函数返回时,栈指针上移(释放空间)。

  • 函数调用过程

    1. 参数压栈(若通过栈传递参数)。

    2. 返回地址压栈。

    3. 局部变量分配在栈中。

    4. 函数执行完毕后,栈指针复位,释放局部变量空间。


5. 嵌入式系统中的注意事项

  1. 栈溢出风险

    • 若局部变量过大(如大数组)或递归调用过深,可能导致栈溢出,引发程序崩溃。

    • 解决方法

      • 调整栈大小(通过链接脚本修改 STACK_SIZE)。

      • 避免在栈中分配大内存(改用堆或静态内存)。

  2. 示例:栈溢出

    void dangerous_func() {char huge_buffer[4096];  // 在栈中分配4KB空间(若栈总大小仅为1KB,将溢出)
    }

总结

  • 普通局部变量 → 栈内存(动态、自动管理)。

  • 静态局部变量 → 全局/静态数据段(持久化)。

  • 优化后的局部变量 → 寄存器(速度优先)。

设计建议

  • 在资源受限的单片机中,严格控制栈大小并避免过大的局部变量。

  • 需要持久化的数据使用 static 或全局变量,动态数据使用堆(谨慎管理防止内存泄漏)。

http://www.dtcms.com/a/408926.html

相关文章:

  • 企业网站建设应具备的功能设计公司网站源码下载
  • 网站建设全部代码pc端和移动端的网站区别是什么
  • 无锡门户网站制作电话wordpress 执行sql
  • 衡阳公司网站建设无锡网站的优化
  • 网站建设维护的知识什么是网络营销举例子
  • 外国有没有中国代做数学作业的网站淘宝网站运营的工作怎么做
  • 模板网站和定公司企业网站建设需要哪些
  • 网站建设中 html5 模板下载网页版梦幻西游虎灯令
  • 辽宁建设工程信息网站软件开发和网站开发有何不同
  • 东莞企石做网站python做网站入门
  • 杭州企业推广网站国外网站如何建设
  • 佛山网站页面优化WordPress论坛用哪些
  • 如何通过psd做网站网站编程源码免费
  • 万网如何建网站百度官方网页
  • PHP网站建设的基本流程免费网站制作报价
  • go语言 网站开发网站首页图片尺寸
  • 网站开发环境搭建章节教材书贵阳网站开发方舟网络
  • 专业网站建设设计网站建设制作有那些
  • 网站设计制作什么时候好品牌微信网站定制
  • 网站反向链接公司网站开发的核心技术
  • 网站页面设计服务响应式模板网站建设哪家好
  • 网站后台编辑器企业网站seo维护
  • 医疗网站备案抖音关键词搜索指数
  • 百度手机模板网站图片做网站连接
  • 自己做的网站打不开了windows7优化大师下载
  • 阿里巴巴的网站建设分销系统什么意思
  • 成都建设网站费用自建设网站
  • 网站管理建设电子商务网站推广方法和技巧
  • 服装网站建设优点有哪些wordpress 首页调用最新文章
  • 一流的营销型网站建设如何做好企业网站