我遇到过一个 C 文件,其中使用了以下代码:
#define XYZ "ITEM 26.G03"
#pragma section <XYZ>
#pragma section
有什么用?
#pragma
指令是一个特定于实现的指令,它是向编译器提供附加信息的标准方法。该指令具有以下形式:
#pragma name
如果预处理器识别出指定的“名称”,它将执行它们代表的任何操作,或将信息传递给编译器。如果 c 实现不支持“name”它会被忽略。
例如 gcc 编译器接受此处列出的编译指示列表。
对于#pragma section
,gcc的文档说:
section ("section-name") 通常,编译器将代码放置在它 生成在文本部分。然而,有时您需要额外的 部分,或者您需要某些特定功能出现在 特别部分。节属性指定一个函数 生活在特定的部分。例如声明:更多信息
extern void foobar (void) __attribute__ ((section ("bar")));
将函数
foobar
放入条形部分。某些文件格式不支持任意部分,因此该部分 属性并非在所有平台上都可用。如果您需要绘制地图 模块的全部内容到特定部分,请考虑使用 而是链接器的设施。
这里。
请参阅
MSDN 了解更多详细信息。
section pragmas 可用于更改默认属性、定义新节、控制代码和变量到特定节的分配以及链接器命令文件及其位置。
#pragma section
定义一个节类,并且可以选择定义该类中的一个或两个节。节类控制放置在该类实例中的变量和代码的寻址和可访问性。