11/09/08 02:53:35.18 AWvxx1rh
ポインタは可読性はあまり良くないな
やたらカッコ増えるし、正直使うべきだとは分かっていても少し気が引けてしまう
215:名前は開発中のものです。
11/09/08 02:57:15.18 XrYAZCzA
ポインタで括弧が増える状況がいまいち想像つかん
値をインクリメントする場合くらいしか思いつかないんだが
216:名前は開発中のものです。
11/09/08 03:11:23.54 n04TG+5l
カッコってまさか
*(hogehoge->hoge)
みたいな書き方してるとか?
217:名前は開発中のものです。
11/09/08 05:26:21.46 doHxDHsJ
久しぶりに掲示板みたらこんなスレ立ってた
URLリンク(hpcgi2.nifty.com)
218:名前は開発中のものです。
11/09/08 06:47:16.66 ER2QaU5m
DXライブラリのすごい所は、普通のライブラリにある「ポインタを使わされる」場面がほとんどないことだよな
他のライブラリ見てるとポインタだらけだ
おかげで自作プログラムじゃ>>204の用途にしか使ってない
219:名前は開発中のものです。
11/09/08 10:06:14.26 WTgUh+ln
>>214
ポインタ使った方が可読性良くなると思うが
関数間での二つ以上の値の受け渡しどうしてんの?いちいち構造体の値渡し使ってるの?
220:名前は開発中のものです。
11/09/08 10:10:45.57 SFhUhwei
全部グローバル変数なんだろう
221:名前は開発中のものです。
11/09/08 10:14:14.91 lrhJNF88
クラス化してるから、各関数の引数としては出てこないとか
222:名前は開発中のものです。
11/09/08 11:02:29.93 WTgUh+ln
>>220
可読性低下してんじゃん
それとも全てのグローバル変数の用途を一年別のコード弄ってても忘れないくらい記憶力いいのか
>>221
クラス使うならクラス使うでポインタ使わずにインスタンスの受け渡しどうすんの
223:名前は開発中のものです。
11/09/08 11:44:46.65 oQa+3H/M
ポインタ使った方が可読性は高まると思う
あとC++の場合、クラス使ってカプセル化するならむしろポインタ必須だろ
>>222も書いてるけど
224:名前は開発中のものです。
11/09/08 11:58:51.52 AWvxx1rh
>>219
時と場合によるけど、俺はその関数で何回も使う場合は普通にポインタ使ってるよ
ちょっと使いたいだけの場合は、構造体の型で関数作る。関数の引数増やすとちょっときたないし
>>216
いや、配列でhogehoge[n].hogeを(hogehoge+n)->hogeって書くとなんか見にくくなった気がする
2次元配列ならなおさら
225:名前は開発中のものです。
11/09/08 12:07:13.55 WTgUh+ln
>>224
いやわざわざ配列をポインタに直す必要なんて全く無いだろ……
226:名前は開発中のものです。
11/09/08 12:16:11.24 oQa+3H/M
仮に必要がある場合でも、俺はローカルで
HOGE *hage = &(hogehoge+n)->hoge;
で置き換えてしまうかな
まあコードの内容にもよるけど、見にくくなるくらい登場頻度が高いならね
227:名前は開発中のものです。
11/09/08 15:14:48.19 95fOK7F6
どうせポインタの使い方が分かってないのなら先にjavaやC#でのポインタレスプログラミングを勉強した方が
CやC++で組むときにもきれいで安全なコードに落ち着く気がする
まぁリファレンス使うのにポインタ使うのと同じ知識は必要だけどね
228:名前は開発中のものです。
11/09/08 16:20:53.63 qZ9zRe2f
どう学習するのがいいんだろうねー
ポインタレスでメモリ空間の感覚が身に付くかなあ
まあいきなりポインタ使おうとしたら危険があるってのは間違いないけど
229:名前は開発中のものです。
11/09/08 16:48:34.53 ER2QaU5m
メモリ操作の感覚が掴めてから本当にポインタが理解できるようになるんだろ
それに、ポインタとかは勉強しようと思って学んでも全然わからない
普通にプログラム組んでれば、いつかどうしてもポインタが必要な状況がくる
そうしたら電球ぴっかんこしてすんなり理解できるようになるから、それまでは無理に身につけようとしなくてもいいよ
230:名前は開発中のものです。
11/09/08 17:03:04.88 Zn0gmw5p
メモリ空間とか意識すべきじゃないってのが昨今の考え方だからな
メモリ管理なんてほとんどの言語ではガベコレ任せでOKだし
C++では低レベル層以外では生ポインタもnewも禁止って規約作ってるところもある
231:名前は開発中のものです。
11/09/08 17:57:56.34 qZ9zRe2f
ゲーム作るならガベコレ任せじゃなあ
ガベコレのタイミングと割り当てる時間まで全部制御できるならいいけど
232:名前は開発中のものです。
11/09/08 18:48:46.19 AWvxx1rh
ゲームプログラミングの館で紹介されてるようなポインタの使い方以外に
どんな使い方が主流だったりするの?
233:名前は開発中のものです。
11/09/08 18:52:34.06 BQSrwOkb
自分の無能をドヤ顔で語られてもな
234:名前は開発中のものです。
11/09/08 18:56:46.84 ER2QaU5m
ゲームプログラミングの館は最近みてないからわからないが、
俺の場合は頻繁にソートしなくちゃいけない構造体の配列とかをポインタにすることでメモリコピー量を軽減して高速にソートできたり、
オブジェクトから別オブジェクトの状態を監視するために使ったりする
例えば、STGで敵が倒したらその敵が出した弾だけ消したい場合、
弾に自分を出した敵オブジェクトへのポインタを持たせといて、HPが0になったりしたのをチェックさせたりとかできる
235:名前は開発中のものです。
11/09/08 18:57:34.76 ER2QaU5m
STGで敵が、じゃない
STGで敵を ね
236:名前は開発中のものです。
11/09/08 19:29:18.17 qZ9zRe2f
ゲームデータを利用するときなんかポインタをよく使うな
STGだったら敵の耐久値や得点を格納した構造体やクラスとか
敵インスタンスのそれぞれには値を持たせないでゲームデータを指させる
用途は色々だけど、スマートに組もうと思ったらポインタが出てくることが多い気がする
237:名前は開発中のものです。
11/09/08 20:05:29.41 lrhJNF88
>>222-223
失敬、あらかじめ別の場所で指定してるから、
実際の昨日呼び出しとしての関数にはポインタが出てこないのかも、というジョークのつもりだった
238:名前は開発中のものです。
11/09/08 23:40:01.91 iztd+bJu
ポインタくらいさくっと勉強すればいいのに・・・
239:名前は開発中のものです。
11/09/08 23:59:50.88 9xOrhu1g
ポインタを無駄に難しく感じる人が多いのはCの教本が悪いんだよな
>>224みたいな発想ってポインタを配列の添字替わりに使うっていうお決まりのサンプルが原因だろうし
C++みたいにクラスのインスタンスアドレスの格納用ってところから入ったほうが実用的で分かりやすい
240:名前は開発中のものです。
11/09/09 00:32:33.59 3xnCMl6b
>>239
あれじゃ使い道分からんよなあ
俺も最初は「で?っていう」状態だったぞ
241:名前は開発中のものです。
11/09/09 00:40:25.04 WMxbyvxF
俺は、「ある構造体を別の関数から手軽に変更できる」から入ったから、
むしろ配列アクセスがポインタ演算の省略記法だって知った時驚いたよ。そして確かにそうだなとも思った
242:名前は開発中のものです。
11/09/09 00:50:17.52 n/GIxaX2
メモリの番地じゃないのか
243:名前は開発中のものです。
11/09/09 01:11:39.93 ao0aDTdP
配列とか構造体を関数の引数にしたときに
Call by referenceにしかできないとか、
二次元配列を、ポインタをインクリメントするだけで
舐めてしまえるとか、
Cをアセンブリにいかに簡単に落とし込みやすくできるか。
アセンブリの性質がもろに出てるんですよね。
244:名前は開発中のものです。
11/09/09 01:36:03.31 8Qyc1Xec
>>241
何それ、kwsk
俺も同じ道を辿りたい
245:名前は開発中のものです。
11/09/09 03:05:21.84 jsjA4VTZ
win7にしたんだけどvc++6.0しか持ってなくて
dxライブラリを使うとdirectxをインストールしなくても
directxで開発できてしまうんだな
ありがたい
簡単にサンプルをビルド実行できた
246:名前は開発中のものです。
11/09/09 04:03:49.72 YyzrgMlk
DirectXはすでにインストールされている
DirectX SDKのこと言ってるのかな
247:名前は開発中のものです。
11/09/09 06:29:13.86 2WBzxpbS
vc6は古すぎるんでできれば新しいコンパイラに替えたほうがいいよ
express editionでよければ無料で使える
248:名前は開発中のものです。
11/09/09 06:45:53.59 ik422DJI
自分もかなり長期間VC6を使ってたから愛着はあるぜ。
より高機能で複雑化してるから、道具に使われてる感はしちゃうけど、
IntelliSenseがかなり賢くなってるから、それだけでも導入の価値はあるぜ。
249:名前は開発中のものです。
11/09/09 08:02:12.33 GccrOwfB
ポインタの何が難しいのか、そっちのが分からん
250:名前は開発中のものです。
11/09/09 08:26:26.37 YyzrgMlk
>>249
ググれ
ポインタの難しさから勉強してこい
そこまで面倒みきれん
251:名前は開発中のものです。
11/09/09 08:44:10.52 HI1B7qUa
ポインタなんて簡単だと言ってるんじゃないの。
252:名前は開発中のものです。
11/09/09 12:29:00.96 zjvixVHU
だな
ポインタなんて難しいことは全くない
難しく感じるのは、教本が悪くて用途が分からないからってだけ
253:名前は開発中のものです。
11/09/09 12:38:14.70 WMxbyvxF
確かに「ポインタなんて何に使えばいいの?」って言われてもこっちが理解できなかったりする
そんな立場に立ったことないし
必要そうな事(俺の場合ゲームに)を順次覚えていったらこんな感じ
254:名前は開発中のものです。
11/09/09 13:19:42.75 HI1B7qUa
そういうところが齟齬の原因なんだろうね。
これはどうしようもない事だと思うよ。
その「理解できない」事が解ってるのに、理解しないまま
そういう人達に対して教えようとするからおかしな事になる。
255:名前は開発中のものです。
11/09/09 13:27:32.18 zjvixVHU
プログラミングって論理思考のセンスが問われるからな
センスが無いと「なんで分からないんだ」ってようなところで躓く
256:名前は開発中のものです。
11/09/09 15:34:40.02 ll9kyqlZ
ポインタ理解出来ない=センスがない ってことじゃないと思うがなー
257:名前は開発中のものです。
11/09/09 15:51:48.77 zjvixVHU
誰もそんなこと言ってねえよ・・・
別の人間が書いてる内容を無理矢理繋げんな
258:名前は開発中のものです。
11/09/09 16:28:33.88 ll9kyqlZ
おっとそれはごめんね
259:名前は開発中のものです。
11/09/09 16:49:44.31 ik422DJI
自分の場合。
セーブ実装したいな…
↓
となるとファイル読み書きが必要だよな。
↓
難しいと評判のポインタを使うのか!
↓
あれ、難しくなかったぞ。拍子抜け。
260:名前は開発中のものです。
11/09/09 17:45:21.82 Qt804ejg
Cで1年ゲーム作ってる人よりもjavaを1週間だけ勉強した人の方が簡単にポインタを理解できたりするからな
結局教え方がマズイというか学び方がマズイというか
ポインタそのものの難度とは別のところに問題があるのは確実
261:名前は開発中のものです。
11/09/09 18:12:25.06 zFZi5GgL
リソースの管理とか言語に依存しない抽象的な概念は他の高級言語やった人の方が理解してそうだな
262:名前は開発中のものです。
11/09/09 18:42:01.46 aPTDe6Zj
頻繁にデータ(構造体)を受け渡ししたり、速度を気にしないうちは
ポインタを使うメリットがよく分からないからなんじゃないかな
俺もゲームの速度を気にするようになり、関数ポインタや
ローカルのポインタ変数を使うようになって、ようやくポインタの
便利さが分かったよ
必要な人だけ使えばいいと思う
ポインタ使わずゲームが作れるならそれで問題ないだろうし
263:名前は開発中のものです。
11/09/09 19:57:45.63 YyzrgMlk
全部スマポでやればいいよ
264:名前は開発中のものです。
11/09/09 20:01:15.86 n/GIxaX2
スマポよりナマポ欲しい
265:名前は開発中のものです。
11/09/09 20:34:44.80 4cbcubR5
スマタでいいからしてほしい
266:名前は開発中のものです。
11/09/09 21:14:05.39 neVttkqH
龍神ryの講座のソースを見て「ポインタなくても困らない」と大声で言う人の気持ちがわかった気がした
何もかもグローバルの配列を使うような世界で育てば確かに困ったことないだろうなぁ
267:名前は開発中のものです。
11/09/09 21:36:07.47 2lDIiM72
グローバルかどうかはあまり関係ないような・・・
268:名前は開発中のものです。
11/09/09 21:49:01.18 jsjA4VTZ
ポインタって要するにアセンブラのインデックスレジスタなんだよね
269:名前は開発中のものです。
11/09/09 21:56:20.07 escQ9bl0
あそこは初心者というよりHSPとかBASICを経由してきた人と相性が良さそう
はじめてゲームプログラミングをするって人には正直見せたくない
270:名前は開発中のものです。
11/09/09 22:11:09.16 4cbcubR5
メモリ消去したのにアドレスを消さないぷろぐらまに価値はないんだよ
271:名前は開発中のものです。
11/09/09 22:18:52.71 Awb5KSju
>>268
は?