我在设备驱动程序编程中遇到了以下声明:
static int __init sum_init(void)
我见过static int sum_init(void)
。为什么上面的声明没有给出编译错误?
答案 0 :(得分:2)
因为可能__init
是某种#define
,它被分配给任何不会导致编译错误的内容。
#define __init
或者...
#define __init __section(.init.text) __cold notrace
答案 1 :(得分:-1)
就像说:
static int __init sum_init()
{
return 0;
}
它不返回任何值,因此没有发生错误。