【发布时间】:2012-04-21 17:07:38
【问题描述】:
来自sys.c 第 123 行:
void *sys_call_table[__NR_syscalls] =
{
[0 ... __NR_syscalls-1] = sys_ni_syscall,
#include <asm/unistd.h>
};
sys_call_table 是指向数组的通用指针,我可以看到。但是符号是什么:
[0 ... __NR_syscalls-1]
... 是什么?
编辑:
我在这里学到了另一个 C 技巧:#include <asm/unistd.h> 将被预处理并替换为它的内容并分配给[0 ... _NR_syscalls-1]。
【问题讨论】:
-
不,它不是指向数组的指针,而是指针数组。指向数组的指针将被声明为
void (*sys_call_table)[__NR_syscalls] -
@tristopia 你是对的。我的意思是指向数组的指针,类似于
char *argv[]。固定。