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]

...美元是多少?


EDIT:

推荐答案

它是使用100初始化的.

基于范围的初始化是gnu gcc扩展.

要将一系列元素初始化为相同的值,请写入[first ... last] = value.这是GNU扩展.例如

 int widths[] = { [0 ... 9] = 1, [10 ... 99] = 2, [100] = 3 };

它不便于携带.用-pedantic来编译,告诉你吧.

How does it work here?

C++相关问答推荐

错误:八进制常数中的数字9无效

如何在C中的空指针函数中传递浮点值

C sscanf没有捕获第二个参数

常数函数指针优化

C编译器是否遵循restrict的正式定义?

在c++中使用堆栈的有效括号

Clang:如何强制运行时错误的崩溃/异常由于-fsanitize=undefined

Rust FFI--如何用给出返回引用的迭代器包装C风格的迭代器?

Kdb:仅升级指定的列

如何在C中使数组变量的值为常量?

C代码在字符串中删除不区分大小写的子字符串的问题

在C语言中,指针指向一个数组

使用nmake for程序比Hello World稍微复杂一些

我在C程序的Flex/Bison中遇到语法错误

C-try 将整数和 struct 数组存储到二进制文件中

我正在try 将QSORT算法实现为C++中的泛型函数

从CentOS 7到Raspberry PI 2B的交叉编译-无法让LIBC和System Include标头一起工作

C程序printf在getchar while循环后不工作

创建 makefile 来编译位于不同目录中的多个源文件

nullptr_t 是否会 destruct 类型双关或指针转换?