2

我正在研究 ac lib,它也可以在嵌入式系统上工作,但我对嵌入式开发不是很深入,所以我的问题

大多数嵌入式编译器都能够处理局部静态变量 - 然后我会假设在进一步的开发中或者是否有一个#define 可以用于#ifdef 来创建一个全局变量以防万一

谢谢

4

4 回答 4

2

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

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

于 2010-02-11T21:23:28.737 回答
1

由于static变量是标准的一部分,因此您应该是安全的。

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

于 2010-02-11T21:34:59.113 回答
0

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

\迂腐{

如果您的代码组织良好,为不同的子系统使用单独的文件(编译单元),则最好使用具有文件范围的静态变量。这将更容易将使用它的代码分解为单独的函数。如果使用变量的代码很复杂,这将允许您将其拆分为更小的静态函数,这些函数更易于阅读、理解和调试。

}

于 2010-02-11T21:40:14.570 回答
0

是的。一旦编译器完成对源代码的咀嚼,局部静态变量与全局变量并没有太大区别。我可以想出全局变量会成为问题的奇异处理器,但我怀疑你会遇到很多。

嵌入式处理器上全局变量的真正有趣之处在于,您通常可以选择让编译器将它们分配到 ROM、EEPROM 等中。

于 2010-02-11T21:57:17.370 回答