読者です 読者をやめる 読者になる 読者になる

はわわーっ

はわわわわっ

関数ポインタを使う

c

やってみた。

#include <stdio.h>


int add(int x, int y)
{
  return x + y;
}

int subtract(int x, int y)
{
  return x - y;
}


int main(void)
{
  int (*func_ptr)();
  int (*func_array[])() = { add, subtract };

  func_ptr = add;
  printf("%d\n", func_ptr(1, 2));
  printf("%d\n", (*func_ptr)(1, 2));
  printf("%d\n", func_array[0](1, 2));
  printf("%d\n", (*func_array[0])(1, 2));

  func_ptr = subtract;
  printf("%d\n", func_ptr(1, 2));
  printf("%d\n", (*func_ptr)(1, 2));
  printf("%d\n", func_array[1](1, 2));
  printf("%d\n", (*func_array[1])(1, 2));

  return 0;
}

呼び出すときに * をつけてもつけなくてもいいんだけど、
どっちで書くほうがいいんだろうか。