組込みエンジニアに求められる能力

組込みシステムに関する知識や技術を説明します‼︎

c言語の配列関数ポインタの活用法


こんにちわ、慶さんです。


今回は関数ポインタの便利なところをあげたいと思います。

ポインタというと難しいイメージがあるのですが、実際にはそんなに難しい概念ではありません。ポインタ変数とはあくまで、他の変数を指すアドレスを格納する変数のことです。

関数もアドレスを持っているので、ポインタで参照することができます。


便利な点を3つあげたいと思います。


⑴コマンドの値によって、関数を選択する場合、本来は、if-else文などで複数記述しなければならないところを一行で済みます。

⑵⑴によって可読性が優れている。

⑶関数を増やしたい場合、可読性を壊さずに、容易に変更することができる。

主な理由は以上です。


書き方もとてもシンプルです。


int (*func[2])(int,int);

関数ポインタの宣言、引数int型で2つ持ち、戻り値はint型の関数をポインタで指定できます。

func[0]=funcA;

func[1]=funcB;

func[2]=funcC;

関数のアドレスをポインタ変数に格納する。

scanf("%d",cmd);

func[cmd](cnt,avg);

関数ポインタで、関数に直接アクセスし、操作できます。これにより、容易にアクセスすることが出来ます。


以上。