2014-07-14 84 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;