Enlightenmentのコードを読んでいると、CIについて理解できないことがいくつかありました。行を貼り付けて、なぜそれがはっきりしないのかを説明します。
Eina_Bool (*hide)(void *data, Evas_Object *o);
void (*del)(void *data, Evas_Object *o);
これについて、括弧内のポインタ値は、戻り値の直後とはどういう意味ですか?また、両方の関数の最初のパラメーターがであることに注意してくださいvoid *data
。これは、任意のタイプのデータへのポインターを関数に渡すことができることを意味しますか?
EAPI Ecore_X_Window elm_win_xwindow_get(const Evas_Object *obj);
APIのほとんどすべての関数は。で始まりますEAPI
。どういう意味ですか?それは一種の名前空間ですか?それに関する情報はどこにありますか?
また、ライブラリの1つであるElementaryをどのように使用しているかにも注目してください。
EAPI_MAIN int elm_main(int argc, char **argv) {
// CODE
}
ELM_MAIN()
main関数を使用する代わりに、そのelm_mainをこれらの大文字のフラグとともに使用しますEAPI_MAIN
。そして、関数の直後には、ELM_MAIN()
セミコロンのない奇妙なものがあります。
初めて見たときに奇妙に思えたこれらすべてについて少し説明していただければ幸いです。
注:貼り付けた例はすべて、elm_win.hElementaryヘッダーからのものです。