Re: Pointer Type (Re: 構造体をポインタ ...)
河野真治 @ 琉球大学情報工学です。(utf 対応しなきゃ...)
In article <kV%Td.17$mh4.8@news1.dion.ne.jp>, 齊藤 敦志<saito@s4.xrea.com> writes
> 言語を比較するときに機能の量は必ずしも優秀性を表さないと思います。
そうねぇ。PL/I で、declare を de に alias するとか、やっちゃう
のが人間だとすれば、決まった短い記述がある方が良いと僕は思う。
i++
が読みやすいと思うなら、
**p
も読みやすいっちゃそうなんだよね。
cast は、さすがにまずかったかなとは思うんだけど。
(int *) p;
みたいなのが通らない一方で、
int *p = (int *) malloc(sizeof(int));
みたいなのが通るのは変だと思う。もちろん、前者が、宣言でなく式として
見えるからまずいって気持はわかるんだけど。
typeof (int *) p;
ってのも変ではあるが...
かといって、ましな構文があるとも思わないけど。
> そもそもCがシステム記述用に作られたという経緯を考えれば、
> アクロバティックなメモリアクセスが出来るということは至極当然です。
> 「出来てしまう」というデメリットはどうやっても避けれないですよ。
reference 持っている言語が、Cよりもえばれるとは僕も思わない
です。GC 持っている言語は、メモリ操作に関しては、Cよりも複雑
なセマンティクスを持っているわけですしね。
それに配列でポインタをエミュレートすることは必ずできるわけだし。
Pure な関数型言語を除けば....
一方で、
> > 特に関数から値を返す方法がポインタしか無い
> > というのはいただけません。まあ結局は、なれの問題なのでしょうが...
この意見は賛成です。複数の値を返すのは実装的にそれほど難しいわけで
もなかったので、いれた方が良かったと思います。
---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735