今日ゲームプログラミングの教科書の「ポインタ」のところ眺めて思ったんですけど
「もう全部ポインタでやっちゃえばグローバル変数いらなくね?」
自分が今まで進めてきたゲーム制作「めんどくさい」の一言でポインタ使ってませんでしたが
ポインタってすごい便利だったんですねww
関数の参照渡しを使えばその関数が「何の変数を受け取っているのか」がわかり、
更に受け取っていることがわかることで「どんな働きをしているのか」がわかりやすくなりますよね。
しかもメモリも節約できるという・・・
ということで素朴な疑問。
「皆さんはどんな変数をグローバル変数にしますか?」もしくは
「どんな変数にポインタを使いますか?」です。
つまらない疑問ですが、よろしければご回答お願いします
ポインタについて
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
Re: ポインタについて
・基本的にグローバル変数は使わない。
・たとえグローバルでも参照する関数は最小限に抑える。
・ポインタで渡すのは呼び出した関数側で書き換えるとき&大きめの構造体を渡したいとき(構造体全体を破壊される覚悟が必要)。小さなら構造体なら値渡し。
・引数が配列ならポインタ渡しとほぼ同義。
ってとこ。
別の人の質問で質問掲示板にも書いたけど、ここを読んでみよう!
「プログラミングの禁じ手Web版 C言語編(InternetArchiveよりサルベージ) - Akio’s Log」
http://d.hatena.ne.jp/elwoodblues/20090206/1233878763
きれいなソースコードを書けることは就職にも有利なので今のうちに悪い癖は出来るだけ取りましょう。
・たとえグローバルでも参照する関数は最小限に抑える。
・ポインタで渡すのは呼び出した関数側で書き換えるとき&大きめの構造体を渡したいとき(構造体全体を破壊される覚悟が必要)。小さなら構造体なら値渡し。
・引数が配列ならポインタ渡しとほぼ同義。
ってとこ。
別の人の質問で質問掲示板にも書いたけど、ここを読んでみよう!
「プログラミングの禁じ手Web版 C言語編(InternetArchiveよりサルベージ) - Akio’s Log」
http://d.hatena.ne.jp/elwoodblues/20090206/1233878763
きれいなソースコードを書けることは就職にも有利なので今のうちに悪い癖は出来るだけ取りましょう。
最後に編集したユーザー softya(ソフト屋) on 2011年6月08日(水) 19:00 [ 編集 1 回目 ]
Re: ポインタについて
コメントありがとうございます!
>基本的にグローバル変数は使わない
うわぁ・・・やっぱりそっちのほうがスリムですもんね・・・
>ポインタで渡すのは呼び出した関数側で書き換えるとき
値渡しとポインタ渡しの違いをはっきりできていなかったのでよくわかりました
リンク先も拝見させていただきます。
>きれいなソースコードを書けることは就職にも有利なので今のうちに悪い癖は出来るだけ取りましょう。
はい、少しずつ綺麗なソースをかけるように精進します。
>基本的にグローバル変数は使わない
うわぁ・・・やっぱりそっちのほうがスリムですもんね・・・
>ポインタで渡すのは呼び出した関数側で書き換えるとき
値渡しとポインタ渡しの違いをはっきりできていなかったのでよくわかりました
リンク先も拝見させていただきます。
>きれいなソースコードを書けることは就職にも有利なので今のうちに悪い癖は出来るだけ取りましょう。
はい、少しずつ綺麗なソースをかけるように精進します。
- MoNoQLoREATOR
- 記事: 284
- 登録日時: 14年前
Re: ポインタについて
fopen()を使ったときにポインタを宣言したことを除いて、今まで私はポインタを宣言することはありませんでした。
しかし、ポインタ自体はよく使います。
配列変数や構造体を扱うときは必須ですからね。
また、私はvectorやstringといったSTLが大好きですので、ポインタはものすごく便利だな、と思っています。
それに、関数の引数には参照渡しを使いまくっています。
「参照」という名前ですが、制限付きポインタという感じですよね。
ただ、私はグローバル変数を沢山宣言します。
グローバル変数を全く宣言せずにプログラムを書くなんて、ちょっと想像できません。
一度勉強してみようと思います。
しかし、ポインタ自体はよく使います。
配列変数や構造体を扱うときは必須ですからね。
また、私はvectorやstringといったSTLが大好きですので、ポインタはものすごく便利だな、と思っています。
それに、関数の引数には参照渡しを使いまくっています。
「参照」という名前ですが、制限付きポインタという感じですよね。
ただ、私はグローバル変数を沢山宣言します。
グローバル変数を全く宣言せずにプログラムを書くなんて、ちょっと想像できません。
一度勉強してみようと思います。
Re: ポインタについて
コメントありがとうございます。
なるほど、やっぱりそういうところで必要になってくるよね。
>ただ、渡しはグローバル変数をたくさん宣言します
同じくwwでも多すぎるのってやっぱりいくないみたいだね(´・ω・`)
>一度勉強してみようと思います。
一緒に頑張ろう!
っていうかポインタ変数とポインタ(参照)を分けて説明してなかったか質問内容わかりにくいですね
なるほど、やっぱりそういうところで必要になってくるよね。
>ただ、渡しはグローバル変数をたくさん宣言します
同じくwwでも多すぎるのってやっぱりいくないみたいだね(´・ω・`)
>一度勉強してみようと思います。
一緒に頑張ろう!
っていうかポインタ変数とポインタ(参照)を分けて説明してなかったか質問内容わかりにくいですね