Я новичок в 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 ...
}
похоже, есть две переменные, __init
и tick_broadcast_init
. Кто-нибудь знает, что происходит?
Между типом возврата и именем функции могут быть атрибуты, специфичные для компилятора (такие как директивы, определяющие раздел исполняемого файла, соглашение о вызове и прочее). Это относится к '__init' (фактически макрос, который расширяется до нескольких из этих атрибутов). –