gpt4 book ai didi

c - location pragmas需要什么

转载 作者:太空宇宙 更新时间:2023-11-04 06:55:04 25 4
gpt4 key购买 nike

最近查了一个Legacy项目(10年前开发的)。

我遇到了 #pragma DATA_SECTION。几乎添加了每个全局变量到特定的数据部分。不知道全局变量被专门移动到 DATA_SECTION 的原因?

最近几天,当我们开发 C 应用程序时,我们并不担心 DATA 部分和所有内容。

那么,过去使用 location pragma 而未使用的原因是什么?现在?

最佳答案

#pragma 在编译器执行超出 C 标准范围的操作时使用。如果代码是用另一个无法识别 #pragma 的编译器编译的,则该行将被忽略。

#pragma DATA_SECTION NAME#pragma DATA_SECTION DEFAULT 一起用于某些嵌入式系统编译器,当您需要在特定内存段分配变量时,例如在具体地址。本例中的NAME为内存段的自定义名称。

(它类似于您可能在其他编译器上找到的 __declspec(section "NAME")。)

我怀疑这是来自 Freescale/NXP Codewarrior,其中 #pragma DATA_SECTION NAME 的意思是:从这里开始将所有静态存储持续时间读/写变量放在 NAME 部分.

您这样做的原因取决于应用程序。在嵌入式系统中,您需要将变量放在特定地址是很常见的。

关于c - location pragmas需要什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46034425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com