October 4th, 2006

只能說…我真的懂 C 語言嗎?

剛才在 zao 學弟那裡看到關於 C array 初始化的一種方式:

int main()
{
    int x[10]=
    {
        [1]=2, [9]=7, [6]=4, [3]=1, [0]=5,
        [2]=8, [4]=9, [5]=6, [7]=0, [8]=3,
    };

    int i;
    for(i=0; i < 10; i++)
        printf("x[%d]=%d\n", i, x[i]);

    return 0;
}

結果:


x[0]=5
x[1]=2
x[2]=8
x[3]=1
x[4]=9
x[5]=6
x[6]=4
x[7]=0
x[8]=3
x[9]=7

原來 C 還是有很多事情是我不知道的 XD

 

歷史上的今天

目前有 3 則留言
  1. 傑洛:

    那個 Compiler 阿? @@

    我拿 gcc 3.2.3 & VS.net 2005 都不會過耶@@

  2. ericsk:

    可是我 gcc-3.3 / gcc-4.0 都可以耶。

  3. william:

    [quote comment=""]可是我 gcc-3.3 / gcc-4.0 都可以耶。[/quote]

    C99 規格書 §6.7.8 引進了這種新語法,第 130 頁也舉了個例子:

    enum { member_one, member_two };
    const char *nm[] = {
    [member_two] = “member two”,
    [member_one] = “member one”,
    };

我要留言
(必填)
(必填)