定義の最初の問題点は、static static
と書いても意味がないことです。これは、static
がのストレージ修飾子であり、タイプ自体の一部ではないためです。 2番目の問題は、両方の関数のパラメータリストが必要なことです。
あなたはこの記述することができます。これらのどちらかは、あなたが望むものであるタイプint (*)(int a)
のオブジェクトを返します
static int (*compare_function(void))(int a) {
...
}
:
int (*compare_function(void))(int a) {
...
}
それともcompare_function
は、静的にすることができます。明確にするために、typedef
を使用せずに、これは(someo
を数えないstatic static
を書くことは意味がない関数を返す関数を記述するための唯一の方法であるような何か書いて想像:。
ちょうどdoesnの
// no
typedef static int SInt;
」を
static int (*compare_function)(int a);
タイプがint (*)(int)
で、保存期間が静的であり、結合は内部で
:T変数を持っているときに、いずれかの任意の意味をなさない。ここで
これは機能しますか?試してみてください。 –
@EugeneSh。申し訳ありません:)私が言ったことは、これを正しい/慣用的な方法ですか? –
なぜ 'typedef'を使わないのですか?それがインターフェイスの一部である場合、正しい方法はそれを使用することです。 –