これら2宣言の違いは何ですか:C関数ポインタの混乱
int operate(int (*func)(int, int), int a, int b){
return (*func)(a, b);
}
と
int operate(int func(int, int), int a, int b){
return func(a, b);
}
これら二つも同等であると思わ:operate(sum, 1, 1)
とoperate(&sum, 1, 1)
私は関数を渡す場合は、 sum
は、func
の代わりに2つの数字の関数として、結果は同じです。どうして?
崩壊についての第2段落は、外れていると思います。あなたが '(* func)'を関数として数え、 'func'をそれが崩壊するポインタとして数えない限り、崩壊は起こっていません...? –
@ R ..:そうです。私は '操作(合計、1,1)'と '操作(&合計、1、1)'を指していました。 –
ああ、私は今.. –