8章のinput_pad_or_key関数について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
banba

8章のinput_pad_or_key関数について

#1

投稿記事 by banba » 15年前

現在僕は龍神録プログラミングの館を参考にしつつ、ゲームを作っているのですが
8章の内容を読んだところ、PadInput & mulの論理積のビット演算(?)等は理解できたのですが
input_pad_or_key関数の引数がポインタになっているのが理解できませんでした。

他のサイトなどでもよく見かけるのですが、関数の引数をポインタにするのは何の意味があるのですか?
僕は「他の関数内で宣言された変数等を参照する必要がある時」と解釈しているのですが間違っていますか?
この解釈が当たっていたとして、何故pad_t padは関数外(グローバルスコープ)で宣言されているのにこうする必要があるのですか?

ちなみに基礎的なポインタの仕組みは一応ですが理解しています。(具体的な使い方とかはまだ知らないんですけど)

とても知識の乏しい質問かもしれませんが、回答いただけるとありがたいです。

kazuoni

Re:8章のinput_pad_or_key関数について

#2

投稿記事 by kazuoni » 15年前

input_pad_or_key関数は
「引数1と引数2のうち大きい方を引数1に代入する」
関数です。
では、引数1をint *型ではなくint型にしてみてください。
もし、引数1<引数2が成り立つとして、その関数を抜けた後に
引数1 = 引数2となっているでしょうか?

なぜこうなるか理解をしていないと、ポインタの初歩から躓いていると思われます。
もう一度、参考サイトなり、本なりを復習してみてください。

banba

Re:8章のinput_pad_or_key関数について

#3

投稿記事 by banba » 15年前

回答ありがとうございます。

回答を参考にし、調べ直したところ
どうやら、ポインタどころか関数の仕組みに対して致命的な勘違いをしていた事が発覚しました。
もう一回基礎を勉強しなおします。

閉鎖

“C言語何でも質問掲示板” へ戻る