c言語 関数ポインタ

 C言語では、関数ポインタは関数のアドレスを格納する変数です。これにより、プログラムは関数を間接的に呼び出すことができます。関数ポインターは、コールバック関数の実装、動的ディスパッチの実装、ポリモーフィズムのメカニズムの …

c言語 配列と線形リスト

1.配列とは 配列は、同じデータ型の要素を番号(添字:インデックス)順に並べたものを表します。 添字は、C言語を含む多くの言語は0スタートとなります。 (例)要素数100のときの1次元配列a、a[0]・・・a[99] 配 …

c言語 スレッド間の排他制御

1.概要 複数のスレッドで共有リソースにアクセスするとき、同時に1つのスレッドだけが共有リソースにアクセスできるようにするために、ミューテックス (英: mutex)が使用されます。 2.ミューテックスを使った排他制御  …

c言語 コールバック関数

1.概要 コールバック関数 (関数ポインターとも呼ばれます) は、別の関数(ハンドラ)に引数として渡される関数です。 2.コールバック関数を使用する利点(1)柔軟性 別の関数をコールバックとして渡すことにより、実行時に関 …

述語論理とPrologプログラミング

1.この記事で使用する論理記号・→ 含む(A→B、A⊃B)・⇔ 同値(A≡B、A⇔Bは、AとBがともに真、又は偽のときのみ真)・¬ 否定(!、~)・⋀ 論理積(&、・)・⋁ 論理和(+)・∀ 全ての、任意の(全称量化)・ …

マルチプロセスとマルチスレッド(Linux)

目次 1.マルチプロセス 2.マルチスレッド 1.マルチプロセス(1)概要 プロセスはOSによってCPUに割り当てられたプログラムの実行単位で、プロセスには連続した仮想メモリ空間が用意されます。マルチプロセスは複数のプロ …