我只能通过结构名称访问结构的成员吗?

时间:2014-07-14 03:39:50

标签: c memcached

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

如上所示,定义一个结构settings,并访问结构成员,如settings.chunk_size,我在memcached源代码中遇到过这种用法,是吗?如果是,那么功能是什么?

2 个答案:

答案 0 :(得分:1)

您无法使用structure member访问structure name。您必须声明一个用于访问的结构对象。

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

struct settings p1; // Declaring a structure variable

现在您可以使用“。”访问成员。运营商。 (例如p1.port)。

您可以为struct settings settings.

等标记和变量使用相同的名称

答案 1 :(得分:0)

您所看到的可能是名为settings的对象。这是合法的C:

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

在C ++中,struct说明符是可选的,所以你也可以看到变量声明只读settings settings;