Code Fix

上級error: invalid type argument of unary '*'(関数ポインタ呼び出しの優先順位) › パターン2

error: invalid type argument of unary '*'(関数ポインタ呼び出しの優先順位)

*fp(a, b)と書くと、関数呼び出し()の方が間接参照*より優先順位が高いため、fp(a, b)を先に呼び出してからその戻り値に*を適用しようとしてしまいます。

 1  #include <stdio.h>
 2  
 3  int multiply(int a, int b) { return a * b; }
 4  
 5  int main(void) {
 6      int (*fp)(int, int) = multiply;
 7      int result = ___________;
                          ^
 8      printf("%d\n", result);
 9      return 0;
10  }
main.c:7:18: error: invalid type argument of unary '*' (have 'int')

空欄を埋めてコンパイル・実行を通す

広告
広告スロット(未設定)

error: invalid type argument of unary '*'(関数ポインタ呼び出しの優先順位)

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)