【问题标题】:two variables when defining function [duplicate]定义函数时的两个变量[重复]
【发布时间】:2015-10-19 00:13:25
【问题描述】:

我是 C 新手,我知道您使用这种格式定义了一个函数

return_type function_name(args)
{
    ... body ...
}

然后我从内核中看到了这段代码:https://github.com/torvalds/linux/blob/master/kernel/time/tick-broadcast.c#L995L1005

函数定义如下所示:

void __init tick_broadcast_init(void)
{
    ... body ...
}

看起来有两个变量,__inittick_broadcast_init。有谁知道怎么回事?

【问题讨论】:

  • 在返回类型和函数名之间可能存在编译器特定的属性(例如管理可执行文件部分的指令、调用约定和其他内容)。 __init 就是这种情况(实际上是一个扩展为其中几个属性的宏)。

标签: c


【解决方案1】:

__inittick_broadcast_init 不是变量。

__init 是一个宏,更多解释请参见here

tick_broadcast_init 是你的函数名。

您的返回类型是void,意思是“无”,因此实际上没有任何数据返回。

【讨论】:

    猜你喜欢
    • 2013-04-28
    • 2015-03-19
    • 1970-01-01
    • 2019-09-04
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    相关资源
    最近更新 更多