最近我检查了Legacy项目(10年前开发)。
我遇到了#pragma DATA_SECTION
。几乎每个全局变量都被添加
特定数据部分。
不知道为什么全局变量专门移到DATA_SECTION?
在我们开发C应用程序的最近几天,我们并不担心数据部分和所有部分。
那么在过去使用位置编译指示并且未使用的原因是什么 时下?
答案 0 :(得分:3)
#pragma
。如果代码是使用另一个无法识别#pragma
的编译器编译的,那么该行将被忽略。
#pragma DATA_SECTION NAME
和#pragma DATA_SECTION DEFAULT
一起用于某些嵌入式系统编译器。此示例中的NAME
是内存段的自定义名称。
(它与您在其他编译器上可能找到的__declspec(section "NAME")
类似。)
我怀疑这是来自Freescale / NXP Codewarrior,其中#pragma DATA_SECTION NAME
表示:将所有静态存储持续时间读/写变量放在NAME
部分中。
您这样做的原因取决于应用程序。在嵌入式系统中,您需要在某些地址放置变量是很常见的。