Presentation is loading. Please wait.

Presentation is loading. Please wait.

第4回放送授業.

Similar presentations


Presentation on theme: "第4回放送授業."— Presentation transcript:

1 第4回放送授業

2 5 サブルーチン

3 5.1 サブルーチンとは

4 # 呼び出し側プログラム int x = 5; int y = 3; int z; z = add(x, y); print z; exit; # サブルーチン int add(int u, int v) { int w; w = u + v; return w; # 戻り値 }

5 戻り(return)、戻り値(return value)
サブルーチン、サブプログラム C: 関数、void 関数 Pascal: 関数、宣言 呼び出し(call) 戻り(return)、戻り値(return value)

6 5.2 引数と戻り値

7 引数(argument) 実引数(real argument) 仮引数(dummy argument)

8 値渡し(call by value) 大域変数(global variable) 参照渡し(call by reference)

9 ポインタ: アドレスを代入できる変数 int* p_x; p_x = &x;
変数: int x; 変数のアドレス: &x ポインタ: アドレスを代入できる変数 int* p_x; p_x = &x; *p_x で x の内容を見ることができる x p_x

10 # 呼び出し側プログラム int x = 5; int y = 3; swap(&x, &y); print x, y; exit; # サブルーチン void swap(int * p_u, int * p_v) { int w; w = *p_u; *p_u = *p_v; *p_v = w; }

11 5 サブルーチン

12 5.3 実装

13 実装で考慮すべきこと 共用情報: &仮引数、 戻り番地、&戻り値 呼び出し側に記憶: 戻り値 サブルーチン側に記録: 仮引数
共用情報: &仮引数、        戻り番地、&戻り値 呼び出し側に記憶: 戻り値 サブルーチン側に記録: 仮引数 各ルーチンでの処理とジャンプ

14

15 5.4 動的メモリー確保

16 動的メモリーの種類 ヒープ領域(heap area) 確保した人が責任を持って解放する
スタック領域(stack area) 確保した人が責任を持って解放する push、pop stack


Download ppt "第4回放送授業."

Similar presentations


Ads by Google