我正在开发一个c lib,这也适用于嵌入式系统 但我对嵌入式开发并不是很深入所以我的问题
是大多数能够处理局部静态变量的嵌入式编译器 - 我将在进一步开发中假设这些变量 要么 是否有#define,我可以使用#ifdef来创建一个全局变量
THX
答案 0 :(得分:2)
他们应该,因为局部静态变量是C标准的一部分。
当然,没有什么能阻止他们创建一个没有所有功能的类C语言。但由于这不是标准的,因此识别特征缺乏的方式也是非标准的。
答案 1 :(得分:1)
由于static
变量是标准的一部分,因此您应该是安全的。
您的编译器可能找不到支持的问题(大多数编译器都能很好地处理标准),但是您需要设置运行时环境的代码。在加载代码时,确保在跳转到C代码之前正确解压缩可执行文件的可执行文件,只读数据,读写数据和零初始化部分。
答案 2 :(得分:0)
本地静态变量是C标准的一部分,所以是的。
\ {迂腐
如果您的代码组织良好,使用不同子系统的单独文件(编译单元),您可能最好拥有一个带有文件范围的静态变量。这样可以更容易地将使用它的代码分解为单独的函数。如果使用该变量的代码很复杂,这将允许您将其拆分为更小的静态函数,这些函数更易于阅读,理解和调试。
}
答案 3 :(得分:0)
是。一旦编译器完成了对源代码的咀嚼,局部静态与全局变量没什么不同。我可以想到异国情调的处理器,其中全局变量会成为一个问题,但我怀疑你会遇到很多问题。
关于嵌入式处理器上全局变量的真正有趣之处在于,您通常可以选择让编译器将它们分配到ROM,EEPROM等中。