自作関数をインライン関数に設定してみよう その2
ソーラー「
main関数内に自作関数が使用されているときの
プログラムの実行順序がわかったかな。
先ほどのエピソードのプログラムはこちら
👇
#include <iostream>
using namespace std;
void function(int a, int b) {
cout << a + b << "\n";
return;
}
int main() {
function(1,2);
return 0;
}
ビルド実行結果
3
ソーラー「つまり
main関数を実行していて
その中で
自作関数が実行されるときは
コンピュータは
機械語に翻訳された自作関数が格納されているメモリに
読込みにいくため
main関数の実行は中断されるんだね。
さらに
main関数の実行を中断された箇所から再開するために
再開時の機械語に翻訳された命令文を格納しているメモリの
アドレスが
あるメモリに格納されることになるんだね。
となると・・・・・
次の命令文をご覧ください。
#include <iostream>
using namespace std;
void function(int a, int b) {
cout << a + b << "\n";
return;
}
int main() {
int c=3;
cout << c << "\n";
function(1,2);
int d=4;
cout << d << "\n";
function(1,2);
int e=5;
cout << e << "\n";
function(1,2);
int f=6;
cout << f << "\n";
function(1,2);
int g=7;
cout << g << "\n";
function(1,2);
return 0;
}
ビルド実行結果
3
3
4
3
5
3
6
3
7
3
ソーラー「このプログラムでは
自作関数function(1,2);が実行されるたびに
main関数は実行を中断します
そして
中断された箇所からプログラムが実行されるように
次に再開される機械語に翻訳された命令文が
格納されているメモリのアドレスが
あるメモリに保存されています。
このようにコンピュータが
自作関数の命令文にたどり着くたびに
自作関数の定義を読み込みに行くと
プログラムの実行に時間がかかります。
そこで
登場するのが
自作関数をインライン関数にするというものなのです。
自作関数をインライン関数にするには
自作関数の定義の戻り値の型の前にinlineを設定します。
今のプログラムの場合
自作関数functionをインライン関数にしたいなら
自作関数functionの定義を
👇
inline void function(int a, int b) {
cout << a + b << "\n";
return;
}
と
記述します。」
マックス「それだけか かんたんだな。
なんか inlineがつくとかっこいいじゃないか」
てんC「そうですね。」
ソーラー「では
自作関数functionの定義を
void function(int a, int b) {
cout << a + b << "\n";
return;
}
から
自作関数functionの定義を
inline void function(int a, int b) {
cout << a + b << "\n";
return;
}
に
切り替えた場合の
プログラムを実行してみます。
#include <iostream>
using namespace std;
inline void function(int a, int b) {
cout << a + b << "\n";
return;
//自作関数をinline関数に設定しました
}
int main() {
int c = 3;
cout << c << "\n";
function(1, 2);
int d = 4;
cout << d << "\n";
function(1, 2);
int e = 5;
cout << e << "\n";
function(1, 2);
int f = 6;
cout << f << "\n";
function(1, 2);
int g = 7;
cout << g << "\n";
function(1, 2);
return 0;
ビルド実行結果
3
3
4
3
5
3
6
3
7
3
ソーラー「このプログラムの実行結果は
自作関数をinline関数に設定しない場合と
まったく同じです。
ですが
違いがあるん~だよ~」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます