【发布时间】:2015-06-11 18:27:28
【问题描述】:
我正在尝试为我的 SD 卡构建驱动程序,但我在此行收到错误:
static void __devexit rtsx_remove(struct pci_dev *pci)
说:
/home/kenkron/Downloads/rts_pstor/rtsx.c:916:22: 错误:在 'rtsx_probe' 之前需要 '=',',',';', 'asm' 或 '__attribute__' static int __devinit rtsx_probe (struct pci_dev *pci, const struct pci_device_id *pci_id)
为什么__devexit 在函数名之前,它应该如何工作?
编辑:我的问题是关于函数定义上下文中的 __devexit 是什么。 Eugene Sh 可能暗示它是一个宏,但它在函数定义中会做什么?我见过的其他函数最多只有静态和返回类型。
【问题讨论】:
-
你确定你没有忘记分号吗?在上一行?
-
嗯?错误大约是
rtsx_probe。你引用的那一行声明了rtsx_remove。您引用了完全不相关的行。 -
@AnT 带有一些未定义内容的宏扩展可能会让编译器对实际错误位置感到困惑
-
关于双下划线开头的名字见link
-
@rahultyagi 这不是一个变量。