jj801238
jj812388
采纳率100%
2015-09-19 12:43 阅读 2.1k
已采纳

C语言局部变量一定在栈区么?

今天同事和我说,如果在51单片机的情况下,这种说法是错的。求求求大神解惑啊?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2015-09-19 12:55

    这个取决于编译器。但是如果局部变量不在堆栈上,这种编程语言要执行递归会很麻烦。不排除你说的特定的编译器(并且其实它只是提供了类似C的语法的子集,而不是标准的C)可能如你的同事说的那样。

    点赞 2 评论 复制链接分享
  • kufanfeng kufanfeng 2015-09-19 13:21

    编译器决定着C语言局部变量。不过要编程有些繁琐,因为编译器只提供类似C语言的语法,不是标准的C语言,希望能帮到你!

    点赞 1 评论 复制链接分享
  • abcd_123457 abcd_123457 2016-01-10 07:26

    堆栈中主要用于存储函数参数,如果寄存器不够多余的函数参数就会压入栈中
    函数调用保护现场的数据都存储在堆栈中
    运算中的临时变量
    函数返回值,寄存器不够用时
    局部变量
    等都在栈中。

    点赞 1 评论 复制链接分享
  • wangyaninglm shiter 2015-09-19 14:31

    是不是意思说,单片机上面没有堆栈?

    点赞 评论 复制链接分享

相关推荐