ちらっと眺めてみたら妙な記述を発見したので。
6 章の js-ctypes におけるポインタ操作について JS のコードとの比較をするセクションでのことなんだが、C 言語での記述が怪しい。特に p. 457 より引用すると、
unsigned int[] counters = {0, 1, 2, 3, 4, 5}; unsigned int *countersPointer = &counters; printf("%d", countersPointer[3]); /* 3 */
1 行目は明らかに文法エラーであって、2 行目もポインタの渡し方が怪しい。直すならこうか。
unsigned int counters[] = {0, 1, 2, 3, 4, 5}; /* [] の位置 */ unsigned int *countersPointer = counters; /* あるいは &counters[0] */ printf("%d\n", countersPointer[3]); /* \n */
JS 版で dump
の引数にわざわざ "\n"
を付けたなら、C 版の printf
でも同様にしたいことも含めて。これらはこの周辺に共通するツッコミであるよ。
正誤表 は今のところ何も載ってないね。
それはともかく、js-ctypes の進化具合は気になるよねー。
Firefox Hacks Rebooted ―Mozillaテクノロジ徹底活用テクニック
- 作者: 浅井智也,池田譲治,小山田昌史,五味渕大賀,下田洋志,寺田真,松澤太郎
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/10/26
- メディア: 単行本(ソフトカバー)
- クリック: 56回
- この商品を含むブログ (11件) を見る
このように、C 言語の文法は非常に害悪であり、バグの温床であるため、より洗練された D 言語に即刻移行すべきである。