簡體   English   中英

這是數組文字中的語法 - [x] = 'y' - 標准 C?

[英]Is this syntax - [x] = ‘y’ in an array literal - standard C?

const char Table[256] = {
     ['a'] = 'a', ['A'] = 'a',
     ['b'] = 'b', ['B'] = 'b',
     ['c'] = 'c', ['C'] = 'c',
     ['d'] = 'd', ['D'] = 'd',
     ['e'] = 'e', ['E'] = 'e',
     ['f'] = 'f', ['f'] = 'f',
     ['g'] = 'g', ['g'] = 'g',
     ['h'] = 'h', ['H'] = 'h',
     ['i'] = 'i', ['I'] = 'i',
     ['j'] = 'j', ['J'] = 'j',
     /* Etc */
};

我在 C 問題的回答中看到了類似的內容。 這是類似 Lua 的語法標准 C,還是一些編譯器擴展?

是的,自 C99 以來,該語法是標准的(1999 ISO C 標准)。

在 C 標准中有描述: https://port70.net/~nsz/c/c11/n1570.html#6.7.9

(該鏈接指向 N1570 草案的 HTML 版本,與 2011 年發布的版本非常接近。)

指定的初始化器也可用於結構和聯合成員,語法為.name = value而不是[index] = value

指定的初始值設定項也可用於復合文字https://port70.net/~nsz/c/c11/n1570.html#6.5.2.5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM