[英]What does a dot before the variable name in struct mean?
查看linux內核源代碼,我發現了這個:
static struct tty_operations serial_ops = {
.open = tiny_open,
.close = tiny_close,
.write = tiny_write,
.write_room = tiny_write_room,
.set_termios = tiny_set_termios,
};
我從未在 C 中看到過這樣的符號。為什么變量名前有一個點?
這是一個Designated Initializer ,它是為 C99 添加的語法。 相關摘錄:
在結構體初始值設定項中,在元素值之前使用“.fieldname =”指定要初始化的字段的名稱。 例如,給定以下結構,
struct point { int x, y; };
下面的初始化
struct point p = { .y = yvalue, .x = xvalue };
相當於
struct point p = { xvalue, yvalue };
它有時被稱為“指定的初始化”。 這是 C99 的補充,雖然它已經成為 GNU 擴展有一段時間了。
在列表中,每個.
命名要初始化的結構成員,即所謂的指示符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.