ZHCU947E June 2015 – January 2023
考虑在 SECTIONS 指令内使用输出段规范:
outsect:
{
s1.c.obj(.text)
end_of_s1 = .;
start_of_s2 = .;
s2.c.obj(.text)
end_of_s2 = .;
}
这可以通过使用 START 和 END 运算符重写为以下格式:
outsect:
{
s1.c.obj(.text) { END(end_of_s1) }
s2.c.obj(.text) { START(start_of_s2), END(end_of_s2) }
}
end_of_s1 和 end_of_s2 的值将会相同,就像在原始示例中使用了点运算符一样,但 start_of_s2 将在两个 .text 段之间需要添加的任何必需填充之后进行定义。请记住,点运算符会导致 start_of_s2 在两个输入段之间插入的任何必需填充之前进行定义。
将这些运算符与输入段相关联的语法需要使用大括号 { } 将运算符列表括起来。列表中的运算符应用于紧接在列表之前出现的输入项。