我找不到关于“ - >”的文档在Gnome代码库中使用了很多。例如,在gedit中他们有这个:
loader->document = g_value_get_object (value)
与装载机有关的文件是什么?还有许多其他示例以及更基本的小部件。
答案 0 :(得分:8)
loader
是一个指针。 ->
取消引用指向结构的指针。这与输入(*loader).
因此:
struct smth {
int a;
int b;
};
struct smth blah;
struct smth* pblah;
...要从a
访问blah
,您需要输入blah.a
,从pblah输入pblah->a
。请记住,它需要指向某些东西!
答案 1 :(得分:8)
loader->document
与:(*loader).document
答案 2 :(得分:5)
loader
是指向struct
或union
的指针。 struct
/ union
至少有一个名为document
的成员:
struct astruct {
T document;
};
上面的 T
是document
的类型,也是g_value_get_object()
返回的类型。
然后,鉴于以下声明:
struct astruct s;
struct astruct *loader = &s;
以下是等效的:
s.document = ...
loader->document = ...
(*loader).document = ...
形式上,->
是二元运算符,其第一个操作数的类型为“指向结构或指向并集的指针”,第二个操作数是此类型成员的名称。
答案 3 :(得分:3)
loader
是指向具有document
字段的结构的指针,->
用于访问它。