簡體   English   中英

struct 中變量名前的點是什么意思?

[英]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.

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