C言語を学びたいんやが、まず何からやればいい? (43レス)
C言語を学びたいんやが、まず何からやればいい? http://mevius.5ch.net/test/read.cgi/tech/1645503621/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
レス栞
あぼーん
38: デフォルトの名無しさん [sage] 2024/09/21(土) 07:06:36.57 ID:T1UE+DVT 「良いところに気がついたね、フェルン。 これはね、汎用的な関数ポインタの使い方を示しているんだ。」 フリーレンは地面に新たな魔法陣を描き、 その上に様々な種類のアイテム -- 剣、杖、薬草 -- を置いた。 「見ての通り、この魔法陣はどんなアイテムでも受け入れることができる。でも、 アイテムの種類によって、魔法陣の効果は変わるだろう?剣なら強化、 杖なら魔力充填、薬草なら効能増幅といった具合にね。」 「確かに…。でも、それはどうやって実現するんですか?魔法陣は一つなのに…」 「それが void* の役割なんだよ。void* はどんな型のデータも指し示せる、 いわば万能ポインタなんだ。この魔法陣は void* 型の引数を受け取ることで、 どんなアイテムでも受け入れることができる。 そして、受け取ったアイテムの種類を判別し、それに応じた処理を行うんだ。」 フリーレンは魔法陣に軽く触れ、光がアイテムを包み込んだ。 剣は輝きを増し、杖からは魔力が溢れ、薬草は鮮やかな緑色に輝いた。 「ソースコードに戻ると、void* 型の関数ポインタは、どんな型の引数と 戻り値を持つ関数でも指し示せる。ただし、使用する際には、キャストによって 具体的な型を指定する必要がある。魔法陣で言えば、アイテムの種類を判別して、 適切な処理を行う呪文を唱えるようなものだね。」 「なるほど…つまり、void* 型の関数ポインタは、どんな関数でも指し示せる代わりに、 使う時に注意が必要ということですね。」 「その通り。柔軟性が高い分、責任も大きくなる。 void* を使う際は、型安全性を確保するために細心の注意を払う必要があるんだ。」 フリーレンは地面の魔法陣を消し、フェルンの方を向いた。 「関数ポインタは強力なツールだが、使いこなすには練習と理解が必要だ。 様々な例を試してみて、その仕組みをしっかりと理解するんだよ。」 http://mevius.5ch.net/test/read.cgi/tech/1645503621/38
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.324s*