天国にいけるC言語入門 ヘキサ構造体 ver2.2126
関数を格納している先頭のメモリのアドレスを関数のポインタ変数ptfに代入すれば*ptf は関数をあらわすことになり*ptfを用いて関数を呼び出して使用することができるようになります。
関数を格納している先頭のメモリのアドレスを関数のポインタ変数ptfに代入すれば*ptf は関数をあらわすことになり*ptfを用いて関数を呼び出して使用することができるようになります。
関数を格納している先頭のメモリのアドレスを関数のポインタ変数ptfに代入すれば*ptf は関数をあらわすことになり*ptfを用いて関数を呼び出して使用することができるようになります。
ソーラー「さあ 今日もはりきっていこう😊
調子はどうかな?」
アレサ「そうしましょう😊」
ソーラー「
次のプログラムをご覧ください
#include <stdio.h>
void newmadefunction(void){
printf("とてもきれいな青い海です\n");
return ;
}
int main (void){
newmadefunction();
return 0;
}
コンパイル結果
とてもきれいな青い海です
このプログラムでは
自作関数の定義
void newmadefunction(void){
printf("とてもきれいな青い海です\n");
return ;
}
が行われています。
このプログラムは
コンパイルされると
機械語に変換されて実行されます。
ところで
機械語は0と1のデータのあつまりでした
機械語に変換されたプログラムは
実行される前に
すべて 1度
🍓🍓🍓 メモリに格納されます 🍓🍓🍓
そうしてから
CPUはそれらの命令をレジスタに格納して実行していくのでした。
となると
自作関数
void newmadefunction(void){
printf("とてもきれいな青い海です\n");
return ;
}
も
🍓🍓🍓コンパイル後🍓🍓🍓
機械語に翻訳されて
メモリに格納されていることになります
つまり
自作関数newmadefunctionを格納しているメモリがあるというわけです。
ある範囲のメモリにわたって
自作関数newmadefunctionを機械語に翻訳した0と1のデータの集まりが
格納されていることになるのですが
もちろん
0と1のデータの集まりを
格納している先頭のメモリというものがあります
関数ポインタ変数は
その
0と1の機械語データの集まりに変換された自作関数を
格納している先頭のメモリのアドレスを格納することができます。
変数aのアドレスをポインタ変数ptaに
pta=&aと代入すれば
*pta
は
変数a
と等しい働きを持ちましたね。
自作関数newmadefunctionを格納している先頭のメモリのアドレス
を格納する
関数ポインタ変数の名前をptfに設定します。
(関数ポインタ変数名は 自由に設定することができます)
自作関数newmadefunctionを格納している先頭のメモリのアドレスを
関数のポインタ変数ptfに代入すれば
*ptf
は
自作関数newmadefunction
をあらわしていることになり
*ptf
を用いて
自作関数newmadefunctionを
呼び出して使用することができるようになります。
*pta
が
変数a
を表すことになったように
*ptf
が
自作関数newmadefunctin
を表すことになるわけです。
関数ポインタ変数の概要は
こんな感じかな😊」
アレサ「ところでマックスさん どこにいかれたのでしょうか?
ソーラーさん お知りになられていませんか?」
ソーラー「・・・(´▽`*)もう、最高さ」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます