タグ

gccに関するteracy_junkのブックマーク (2)

  • Blocks を使った再帰呼び出し - 理系学生日記

    Objective-C には(正確には GCC、Clang の拡張として) Blocks という機能がある。 これは、C 及び C の拡張言語 (C++、Objective-C、Objective-C++) に対するクロージャ的な機能であるのだけれど、コードを書くときに嬉しいことの一つとして、いわゆる無名関数を記述できる、ということがある。特にフレームワークに対しコールバック関数を指定する場合、従来は関数ポインタ等で渡さざるを得なかったところに無名関数が渡せるようになることで、制御が非常に分かりやすくなる。 ところで、この Blocks で再帰呼び出しをしたいときにどうすれば良いのか。再帰呼出といえば階乗なので、早速書き下してみる。 以下のようなコードになるがこれはうまくいかない。factorial という blocks を定義するときに、未定義の blocks である factorial

    Blocks を使った再帰呼び出し - 理系学生日記
  • gcc+gdbによるプログラムのデバッグ 第1回 ステップ実行、変数の操作、ブレークポイント

    しかし、ブレークポイントという機能はデバッガの手助けなしでは実現できません。 ブレークポイントとはプログラムの強制一時停止を行うポイントで、実行中のプログラムがブレークポイントに遭遇するとプログラムは一時停止され、デバッガによるプログラムへの介入を行えるようになります。 ブレークポイントは次のような場所に設定できます。 指定した行番号のプログラムを実行しようとする瞬間 関数を呼び出した瞬間 その他、C++などでは「例外が発生した瞬間」などにもブレークポイントを設定することができます。 行番号ブレーク ブレークポイントとしてよく使用されるのは、「プログラムの特定の位置」です。 例として、bubblesort.cプログラムのsort関数内で、隣り合う二つの要素を比較している箇所にブレークポイントを設定してみます。 25|/* bubble sort */ 26|void sort(int *a

  • 1