首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >局部静态变量是由嵌入式编译器提供的吗?

局部静态变量是由嵌入式编译器提供的吗?
EN

Stack Overflow用户
提问于 2010-02-12 05:21:16
回答 4查看 350关注 0票数 2

我正在写一个c库,如果也能在嵌入式系统上工作就好了,但我对嵌入式开发不是很深入,所以我的问题是

大多数嵌入式编译器都能够处理局部静态变量吗?在进一步的开发中我会假设是这样的,还是有一个#定义,我可以使用它作为#ifdef来创建一个全局变量,以防

thx

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-12 05:23:29

它们是应该的,因为局部静态变量是C标准的一部分。

当然,没有什么能阻止他们创建一种不具备所有功能的类C语言。但由于这将是非标准的,那么识别功能缺失的方法也将是非标准的。

票数 2
EN

Stack Overflow用户

发布于 2010-02-12 05:34:59

因为static变量是标准的一部分,所以您应该是安全的。

支持的问题可能不在于你的编译器(大多数编译器能很好地处理标准),而在于你用来设置运行时环境的任何代码。确保在加载代码时正确地解压可执行文件、只读数据、读写数据和可执行文件的零初始化部分,然后再跳到C代码中。

票数 1
EN

Stack Overflow用户

发布于 2010-02-12 05:40:15

局部静态变量是C标准的一部分,所以是的。

\pedantic{

如果您的代码组织良好,对于不同的子系统有不同的文件(编译单元),那么使用一个带有文件作用域的静态变量可能更好。这将使使用它的代码更容易分解到单独的函数中。如果使用变量的代码很复杂,这将允许您将其拆分成更小的静态函数,这样更容易阅读、理解和调试。

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2247788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档