【发布时间】:2014-02-01 01:53:08
【问题描述】:
再次在 linux 内核中找到了一次那些神秘的函数定义。该函数的签名为:
static void __sched __schedule(void)
现在它有void 和__sched 作为返回类型。有人可以解释一下这些标识符在那里做什么。不应该是 voidor__sched` 吗?怎么可能两者兼有?
这是__sched的定义:
#define __sched __attribute__((__section__(".sched.text")))
【问题讨论】:
-
__attribute__和__section__都被 gcc documentation 覆盖。这是“把我放在这里”之类的东西。此外,"gcc __atttribute__ __section__" 的热门搜索 google 将几乎准确地告诉你你在问什么。 -
如果您使用c++,请务必使用
extern "C" {}进行声明! -
您是否正在编写在内核中运行的 C++ 代码?