C sözdizimi bu tarz nedir?
sys.c 123 satırından:
void *sys_call_table[__NR_syscalls] =
{
[0 ... __NR_syscalls-1] = sys_ni_syscall,
#include <asm/unistd.h>
};
sys_call_table
görüyorum ki diziler için genel bir işaretçi. Ancak gösterimde:
[0 ... __NR_syscalls-1]
...
nedir?
DÜZENLEME:
Başka bir C hile burada öğrendim: #include <asm/unistd.h>
olacakönişlenmişve içeriği ile değiştirilir ve [0 ... _NR_syscalls-1]
atanmış.
CEVAP
Başlatma kullanıyorDesignated Initializers.
Aralığı tabanlı başlatma gnu gcc uzantısıdır.
Aynı değer öğeleri bir dizi başlatmak için,
[first ... last] = value
yazın. Bu bir GNU oluşumudur. Örneğin,int widths[] = { [0 ... 9] = 1, [10 ... 99] = 2, [100] = 3 };
Taşınabilir değildir. -pedantic
ile derleme mi?
Burada nasıl çalışır?
Bu basit gerçek içeriği ile #include <asm/unistd.h>
değiştirir(çeşitli sembolik sabitler ve türlerini tanımlar, ve çeşitli fonksiyonları beyan eder) aralığı daha sonra başka işaretçiler dizisi başlatma için kullanılan inşa tabanlı.
Soyut Sözdizimi Ağacı ve Somut Sözdizi...
{ Get; set; } C sözdizimi nedir#?...
Bower sürümü sözdizimi nedir?...
Bir dict başlatma için tercih edilen s...
'eğer başkası için doğru sözdizim...