1
struct ast_channel *(* const requester)(const char *type, int format, void *data, int *cause);

この行の意味は何ですか?

2番目の質問:使用する利点は何ですか

static struct hello
{
    int a;
    chat b;
};

簡単に

struct hello
{
    int a;
};

static char p[]また、とはどう違いchar p[];ますか?

4

5 に答える 5

5

私の C は少し錆びています: requester は、ast_channel 構造体へのポインターを返す関数への定数ポインターです。

次の記事を参照してください。

static キーワードの意味は、宣言がコード内のどこに現れるかによって異なります。関数内では、変数をスタックではなくデータ セグメントに置く必要があり、関数がスコープ外 (つまり、実行されていない) になったときに永続的であることを示します。関数の外では、変数が含まれているファイルの外では変数にアクセスできないことを示します。

于 2009-03-27T05:48:10.647 に答える
4

魚に教える(魚を与える代わりに):

C 型宣言の読み取り

Cプログラムで静的とはどういう意味ですか

于 2009-03-27T05:50:15.867 に答える
1

1つ目は、関数への定数ポインターの宣言(および定義)です。この関数struct ast_channelは、最後のペアのパラメーターにリストされているパラメーターへのポインターを返し、パラメーターを受け入れます。この関数ポインタの名前はrequesterです。

の意味は、static実際にはコンテキストによって異なります。しかし、それは以前の回答で説明されています。

于 2009-03-27T06:57:38.980 に答える
0

最初の行は、ast_channnel型の関数ポインタです。その使用法を適切に説明するには、より多くのコードを提供する必要があります。それは構造の内部で定義されましたか?その場合、structname-> requester(... args ...)を介して入力されます。

このチュートリアルは、その意味を理解するのに役立つ場合があります。「静的」が何を意味するかを知るために、リンクはすでに他の人によって提供されています。

于 2009-03-27T06:08:08.243 に答える
0

cdecl.orgあなたの友達はここにいます:

struct ast_channel *(* const requester)(const char *, int , void *, int *)- リクエスターを関数への const ポインター (const char、int へのポインター、void へのポインター、int へのポインター) として宣言し、struct ast_channel へのポインターを返す
于 2011-08-11T16:19:50.253 に答える