2014-07-14 72 views
-2
struct settings { 
    size_t maxbytes; 
    int maxconns; 
    int port; 
    int udpport; 
    int chunk_size; 
}; 

正如上面所示,定義一個struct settings,並訪問像settings.chunk_size這樣的結構成員,我在memcached源代碼中遇到這種用法,是嗎?如果屬實,那麼這個功能是什麼?我可以只通過struct名稱訪問結構體的成員嗎?

+0

顯示示例。 –

+0

這將是非法的。但是,您可以使用與結構標記名稱相同的變量。例如。 '結構設置設置; settings.chunk_size = 10;' –

回答

1

您不能通過structure name訪問structure member。你必須聲明一個結構對象來訪問。

struct settings { 
    size_t maxbytes; 
    int maxconns; 
    int port; 
    int udpport; 
    int chunk_size; 
}; 

結構設置p1; // Declaring a structure variable

現在您可以使用「。」來訪問成員了。運營商。 (例如p1.port)。

您可以使用相同的名稱,標籤和可變像struct settings settings.

0

也許你看到的是一個名爲settings的對象。這是合法的C:

struct settings settings; 
settings.chunk_size = 1024; // Access the object, not the type. 

在C++中,struct符是可選的,所以你也可以同樣看到一個變量聲明閱讀簡單settings settings;