https://twitter.com/kinaba のログ (twilog の方が便利です。)
@kmaebashi よろしくお願いします。宣言を"Xへのポインタの配列"へ訳すより"array of pointer to X"へ訳す手順の方が簡単という点は同意しますが、そもそもそのようなコンパイラの内部表現っぽい表示を経由して理解しようとするの自体遠回りでは、という疑問です | |
@n_soda @kmaebashi あ、はい、さっきのに加えて、Cの文法がそもそも変でありもっと良くできたはずという論点についても、(物によって同意できることもそうでないこともありますが)いずれにせよ理解はできます。とにかく、今あるC89の宣言をどう読むか指南が引っかかります。 | |
@Farsse 今回目にしたのは https://t.co/jd8Ahdid これです | |
.@kmaebashi http://d.hatena.ne.jp/kmaebashi/20120119/p1 読みました。(1) 「宣言を読むときには"使い方"で解釈するとよい」に対して「宣言として正しく解釈できない"使い方"もある(*&や関数ポインタ)」は論理的に反論になっていないと思います。 | |
(2) 「配列変数を式中で*で使うこともあるしポインタに[]も」「関数が関数へのポインタに」等は反論ですが、自然に読むと先ずは*はポインタの使い方で[]は配列の使い方と感じるのでは。自分含め多くの人がそうだと思うので、多くの人には"使い方"の謎規則が妨げになるとは思えません。 | |
つまり、ポインタの中身を取り出す使い方と言って最初に出るのは*でしょうし配列なら[]で関数は()で、逆も然り(*で中身を取り出す→ポインタ)では。宣言を"書く"にはこの「中身を取り出す」使い方に絞る必要がありますが、型を記述したい場面では内部構造に潜ろう、って覚えるほどのものでも | |
(3) 「constは"使い方解釈"無理」はその通りですが、だから*[]()でも"使い方解釈"を捨てる、というのは極端ではないですか。constが出てきたらそこは「constで」と読む、とだけ追加で考えれば。一方C++の参照の宣言が紛らわしい件についてはグゥの音もなく弱点ですはい | |
https://t.co/dVpARt1T は、僕はルールが多いのは嫌いなので「*をpointer toと読む」「[]をarray(略」等の規則を別に持つより「*はデリファレンス」「[]は添字」一本槍が好きです…と脊髄反射しかけましたが自分にとってそこが最重要点ではないかも(後述 | |
https://t.co/7q8bZxzZ どちらもアルゴリズムの動作としては本質的に同じと思います。「同じような出力」については異論があります、というかそこが私的には最も気になるところです (後述 | |
(後述と書きましたが続き特に何も書いてないし査読とか査読とか査読などの業務にそろそろ戻らないとヤバいので続きはCMの後です。しばしご歓談下さい) | |
(勢いでCMとか言ってしまったのでせっかくだから何か僕の趣味の対象を宣伝ツイートしちゃおう!!!などとあれこれ考えているせいで全くTwitterの前を離れられていない私です) | |
電撃文庫のチャリティ企画 http://dengekiya.com/p/4942330700754/ 届いてた。『扉の外』の掌編がよかったという評判をちらほら聞いて、これは読まねばならないと思って |