タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

binaryとCに関するyuguiのブックマーク (3)

  • 再入不可能な関数を C で実装する - いやなブログ

    再入不可能な関数を C で実装する 一度実行したら二度と中身を実行できなくなる再入不可能な関数を C で実装してみます。通常、このような関数はシングルトンなどの静的なデータの初期化に使いますが、ここではデータについては考えないことにします。 static 変数をフラグに使う まずは最も単純な方法から見ていきます。次の関数は static 変数をフラグに使って再入を防いでいます。厳密に言えば関数そのものには入ってしまっていますが、ここで気にしないことにします。 void once(void) { static int entered; // 最初は 0 if (entered == 1) { // すでに入ったことがある場合は return; // すぐ出る } entered = 1; // 初回の場合のみ、何かを実行する } この方法はシングルスレッドのプログラムではうまく動きますが、マ

  • 更新履歴兼雑記 - C で curry 化 @lightning

    さて上記をポータブルに。 GNU lightning の出番。 http://www.gnu.org/software/lightning/lightning.html 下記コードは i386-linux と ppc-macosx と sparc-solaris で動きました。 #include <stdio.h> #include "lightning.h" typedef int (*pifi)(int); static jit_insn buf[1024]; int (*curry(int (*F)(), int A))() { pifi code = (pifi)(jit_set_ip(buf).iptr); int i; jit_prolog(1); i = jit_arg_ui(); jit_getarg_ui(JIT_V0, i); jit_movi_i(JIT_V1, A)

    更新履歴兼雑記 - C で curry 化 @lightning
    yugui
    yugui 2006/08/10
    "GNU lighting"; 仮想アセンブラで書いておいてJITコンパイルするライブラリ
  • J (2006-08-08)堕落したCプログラマのレベル10

    「偽札対応済み」って書いてある両替機。 川口市立中央図書館屋の上にある図書館。に行ってきた。特に何もないけど。あと、マイコンショップ川口つぶれてた。 ある程度能力を持ってるなら、成果を残せるか残せないかは自信を持ってるか持ってないかの違いだけかもしれないというような話。 最近思うのだけど、使えない奴(例えば、僕のような)の特徴として、「どうせ自分が何をどうやっても、何もどうにもならない」的な思考があると思う。 例えば、上の一行で言うと、「使えない奴(例えば僕」とか、そういったような思考。 こういった思考は、いったん根付いてしまうと、循環するので、なかなかやめられない。「どうせ自分は何もできないんだ→何もできないから何もやらない→何も成果を残せない→どうせ自分は何もできないんだ」とかいった感じで。 矯正しようと思っても、「いや、こういう性格だから、矯正は無理だし。」と、いう思考になってし

    J (2006-08-08)堕落したCプログラマのレベル10
    yugui
    yugui 2006/08/09
  • 1