Download presentation
Presentation is loading. Please wait.
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 5 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
実装で考慮すべきこと 共用情報: &仮引数、 戻り番地、&戻り値 呼び出し側に記憶: 戻り値 サブルーチン側に記録: 仮引数
共用情報: &仮引数、 戻り番地、&戻り値 呼び出し側に記憶: 戻り値 サブルーチン側に記録: 仮引数 各ルーチンでの処理とジャンプ
15
5.4 動的メモリー確保
16
動的メモリーの種類 ヒープ領域(heap area) 確保した人が責任を持って解放する
スタック領域(stack area) 確保した人が責任を持って解放する push、pop stack
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.