在C编程,Gtk +编程中," - >"代表什么?

Dim*_*ima 1 c gtk

可能重复:
C++中的箭头运算符( - >)同义词是什么?

我找不到关于" - >"的文档,它在Gnome代码库中经常使用.例如在gedit中他们有:

loader->document = g_value_get_object (value)
Run Code Online (Sandbox Code Playgroud)

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

Kor*_*icz 8

loader是一个指针.->取消引用指向结构的指针.这与打字相同(*loader).

因此:

struct smth {
  int a;
  int b;
};

struct smth blah;
struct smth* pblah;
Run Code Online (Sandbox Code Playgroud)

......去访问ablah,您需要输入blah.a,从pblah你需要写pblah->a.请记住,它需要指向一些东西!


chr*_*ris 8

loader->document 与: (*loader).document


Alo*_*hal 5

loader是指向a struct或a 的指针union.将struct/ union已至少一个成员,命名为document:

struct astruct {
    T document;
};
Run Code Online (Sandbox Code Playgroud)

T以上是类型document,也是返回的类型g_value_get_object().

然后,鉴于以下声明:

struct astruct s;
struct astruct *loader = &s;
Run Code Online (Sandbox Code Playgroud)

以下是等效的:

s.document = ...
loader->document = ...
(*loader).document = ...
Run Code Online (Sandbox Code Playgroud)

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