タグ

ブックマーク / www.nurs.or.jp/~sug (3)

  • Jargon! Jargon!

    版 Jargon File ファイルはオリジナルの The New Hacker's Dictionary に準じて、国産ハッカー語をコレクションしたものである。収録基準は、 家 The New Hacker's Dictionary に収録されない日固有のハッカー表現であること。 日におけるハッカー習俗を明快に表現するものであること。 国産機種・ソフトなどの単なる解説ではなく、それに対する明確な評価やハッカー気質が表現されていること。 とする。ハッカーが活躍する(した)ジャンルであればとくにジャンルは問わない。ファイルには80年代初めのベーシカーの懐かしい表現も多数含まれている。ファイルに追加したい単語があればメールを頂きたい。検討の上追加する。なお、編者はゲーム業界には詳しくないので、ゲーム業界のスラングを歓迎する。 注記: Jargon File は、いわゆる「クラ

  • Super Technique 講座~longjmpと例外

    プログラムの流れを制御する手段として、いわゆる「構造化構文(for とか if とか)」、悪名高い「goto 文」などがあるのは周知のことだが、かなり特殊なものとして、「setjmp, longjmp」による「非ローカル分岐」と呼ばれるものがある。この「非ローカル分岐」は「非ローカル」と言うだけあって、ある関数の中から、別な関数に制御を移すことができたりする。まあ、そのために乱用すべきではなく、注意して使わなくてはならないライブラリ関数なのだが、実はこれは JavaC++ で言語の上で実装されている「例外」の基礎となるものである。だから、まずこの標準ライブラリ関数「setjmp, longjmp」について解説しよう。 → Java 講座の「例外」 setjmp, longjmp とは どうやって実現してるの? setjmp/longjmp の利用例~インタプリタ 補追1:setjmp

  • ポインタ虎の巻~多次元配列の実現

    面白いことに、p == *p である。これはポインタが指す対象が配列でありポインタではないから、間接参照が生成されないのである(逆に言えばポインタの場合には、*p が間接参照をして、p != *p になる)。 上の表の結果と、二次元配列のシンボル x は、実質上一次元配列であることから、次のキャストは成功することになる。 int *p = (int *)x; だから次のように書ける。 int x[10][10]; int i; int *p = (int *)x; for( i = 0; i < 100; i++ ) { *p++ = i; } printf( "x[5][5] = %d\n", x[5][5] ); これは x が実質上一次元のポインタであることを示している。 この事情は関数引数の場合も同様である。二次元配列とポインタは混同されず、しかし int (*p)[10] とは一

  • 1