次のコードスニペットの関数glade_project_get_typeの実装コードが不足していることに困惑しています。関連するヘッダファイルから宣言されたC関数はどのように実装されていませんか?
project = g_object_new (GLADE_TYPE_PROJECT, NULL);
:.Cファイルから
#define GLADE_TYPE_PROJECT (glade_project_get_type())
これはglade_project_get_type()
の宣言のように見える:
GType glade_project_get_type (void) G_GNUC_CONST;
/* From glib/gmacros.h:
#define G_GNUC_CONST __attribute__((__const__))
__attribute__((const)) function attribute
Many functions examine only the arguments passed to them and have no effects
except for the return value.
If a function is known to operate only on its arguments then it can be subject
to common sub-expression elimination and loop optimizations.
*/
私は見つけることができますglade_project_get_type()の実装コードですが、ソフトウェアはエラーなしでコンパイルされます明らかに私が理解していないことがあります。
私はどこかのようなものがあることが予想される:私はCのプログラミングについて理解していないものを、そう
GType glade_project_get_type (void)
{
GType aType;
< some code giving a value to aType >
return aType
}
?
多くの助けになるあなたの説明をありがとうが、私はまだ完全な理解が不足しています。私はglade-project.cの "glade_project_get_typeの次の行"を見つけましたが、glade_project_get_type()にどのように関係しているのか分かりません。私の本の中に何も書かれていないので、この仕組みを説明する本はありますか? – Roger
さらに検索した後は、主な情報源はGObject Referenceマニュアルです – Roger
@Roger:おそらく。私は、グレードが一般的にどのように機能するかについては何も知らないのではないかと心配しています。私はちょうどこのコードがどのようにコンパイルされるかについてのあなたの質問に対処するために探していましたが、実際にどのように使用するのかは助けません。あなたは新しい質問をしたいかもしれません。 –