我正在写一个c库,如果也能在嵌入式系统上工作就好了,但我对嵌入式开发不是很深入,所以我的问题是
大多数嵌入式编译器都能够处理局部静态变量吗?在进一步的开发中我会假设是这样的,还是有一个#定义,我可以使用它作为#ifdef来创建一个全局变量,以防
thx
发布于 2010-02-12 05:23:29
它们是应该的,因为局部静态变量是C标准的一部分。
当然,没有什么能阻止他们创建一种不具备所有功能的类C语言。但由于这将是非标准的,那么识别功能缺失的方法也将是非标准的。
发布于 2010-02-12 05:34:59
因为static变量是标准的一部分,所以您应该是安全的。
支持的问题可能不在于你的编译器(大多数编译器能很好地处理标准),而在于你用来设置运行时环境的任何代码。确保在加载代码时正确地解压可执行文件、只读数据、读写数据和可执行文件的零初始化部分,然后再跳到C代码中。
发布于 2010-02-12 05:40:15
局部静态变量是C标准的一部分,所以是的。
\pedantic{
如果您的代码组织良好,对于不同的子系统有不同的文件(编译单元),那么使用一个带有文件作用域的静态变量可能更好。这将使使用它的代码更容易分解到单独的函数中。如果使用变量的代码很复杂,这将允许您将其拆分成更小的静态函数,这样更容易阅读、理解和调试。
}
https://stackoverflow.com/questions/2247788
复制相似问题