有人可以解释一下返回类型int __attribute __((weak))吗?

时间:2014-07-28 12:32:30

标签: c

linux source code我发现了以下内容:

int __attribute__((weak)) arch_dup_task_struct(struct task_struct *dst,
                           struct task_struct *src)
{
    *dst = *src;
    return 0;
}

有人可以向我解释一下返回类型int __attribute__((weak))吗?

2 个答案:

答案 0 :(得分:3)

这是特定于GCC的链接器属性。它使arch_dup_task_struct函数链接器符号。这意味着除非链接器输入中的某个地方存在具有相同名称且没有属性(即强)的函数,否则将使用该定义 - 然后将使用强函数。

该属性对于可以轻松覆盖的库函数很有用。该库提供默认实现,库的用户可以提供自己的实现,它将替换库。

答案 1 :(得分:1)

该属性不属于该类型。它是一个GCC扩展属性,告诉编译器使arch_dup_task_struct成为weak symbol