什么是“ - >”代表C编程,Gtk +编程?

时间:2010-01-26 10:26:56

标签: c gtk

  

可能重复:
  What is the arrow operator (->) synonym for in C++?

我找不到关于“ - >”的文档在Gnome代码库中使用了很多。例如,在gedit中他们有这个:

loader->document = g_value_get_object (value)

与装载机有关的文件是什么?还有许多其他示例以及更基本的小部件。

4 个答案:

答案 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是指向structunion的指针。 struct / union至少有一个名为document的成员:

struct astruct {
    T document;
};
上面的

Tdocument的类型,也是g_value_get_object()返回的类型。

然后,鉴于以下声明:

struct astruct s;
struct astruct *loader = &s;

以下是等效的:

s.document = ...
loader->document = ...
(*loader).document = ...

形式上,->是二元运算符,其第一个操作数的类型为“指向结构或指向并集的指针”,第二个操作数是此类型成员的名称。

答案 3 :(得分:3)

loader是指向具有document字段的结构的指针,->用于访问它。