タグ

cに関するclonedのブックマーク (8)

  • newしたらスタックかレジスタを探る - 神様なんて信じない僕らのために

    newした位置が解るnew が以外と人気ですが、 泥臭くない方法で(寧ろハイパー泥臭い方法で)、 newの中で自分を呼び出した関数のアドレスをスタックかレジスタから引っ張ってきて、 それを保持しておく、というワザもあります。 ポータビリティは最低ですが、インラインアセンブリで書くと良いです。 mapファイルか、 デバッガのシンボル参照なんかを使うと呼び出しもとの確定が簡単です。 この2つの合わせ技は強力です。

    newしたらスタックかレジスタを探る - 神様なんて信じない僕らのために
    cloned
    cloned 2009/01/23
  • C言語〜ゲームプログラミングの館〜

    ※ 更新履歴 ※ 2017/11/03 ・sp.8章追加 2017/10/11 ・配布しているプロジェクトをVisualStudio2017に更新(それにまつわる説明も更新) 2015/09/12 ・s.3章 Androidのようなボタンの作り方(C++) 追加 2013/09/02 ・VisualC++2012のプロジェクトを追加 2013/02/23 ・d3.5章追加 2013/02/20 ・d3.1章追加 ・d3.2章追加 ・d3.3章追加 ・d3.4章追加 2013/01/19 ・sp3章追加 ・sp4章追加 ・sp5章追加 ・sp6章追加 ・sp7章追加 2012/06/23 ・3.14章追加 2012/06/16 ・sp1節追加 ・sp2節追加 2012/02/11 ・d6節追加 2011/11/10 ・h11章追加 2011/10/31 ・s1章追加 ・s2章追加 2011/

    cloned
    cloned 2009/01/19
  • mixi Engineers’ Blog » 言語バインディングを書こう

    世田谷の某所から原宿まで自転車通勤しているのですが、そろそろ寒くなってきたので電車に切り替えようかと悩み中のmikioです。今回はTokyo Cabinetのスクリプト言語バインディングについて述べます。 スクリプト言語バインディングとは TCはC言語で実装されたライブラリで、C言語(C89、C99)およびC++言語のプログラムから利用することができます。CやC++は各種の計算処理やシステムコールの呼び出しを直接的に記述できるので高速に動作するプログラムを作ることができる反面、ポインタ演算やメモリ管理などで致命的なバグを潜ませやすいので非常に注意深くコーディングを進めなければいけません。つまり、プログラムの実行速度は速いが、開発速度は遅いということです。 それに対して、PerlRubyをはじめとするいわゆるスクリプト言語は、実行速度はCやC++に劣るものの、高水準かつ直感的な文法と強力な

    mixi Engineers’ Blog » 言語バインディングを書こう
    cloned
    cloned 2007/11/09
  • [再]JavaとCの実行速度 (recompile.net)

    前回の記事って当は、Java > Cという話をしたかったんですよ。ベンチマークって当に難しいですね! というわけで、今回はJava > Cという話をみつけました。フィボナッチ数列ってやつです。 まずはCバージョンを書いてみましょう。 1 #include <stdio.h> 2 3 int fib(int n) { 4 if(n < 2) 5 return n; 6 else 7 return fib(n - 2) + fib(n - 1); 8 } 9 10 int main() { 11 printf("%d\n", fib(40)); 12 } 実行結果は、下記の通りです。 % cc fib.c -o fib % time ./fib 102334155 ./fib 3.30s user 0.01s system 98% cpu 3.361 total 次は、Javaバージョン

    cloned
    cloned 2007/08/10
    アッー!
  • 和田維作のホームページ

    English 和田維作のホームページ このページへはご自由にリンクを張っていただいて結構です 目次 自己紹介 更新履歴 タイピング練習ソフト 解凍ソフトとCコンパイラについて hello.exe が 1536 byte になるツール 色々なプログラム 組合せに対応する整数への変換と逆変換 良い乱数・悪い乱数 悪い乱数のリスクを視覚的に明らかにする(New!) 数値計算フレームワーク「ポコム」 Cマガ電脳クラブ TIPS集 リンク e-mail: isaku@pb4.so-net.ne.jp

    cloned
    cloned 2007/06/05
    phpのmt_randの元ライブラリの作者
  • ホワット・ア・ワンダフル・ワールド C 言語のための現実的なポインタ解析

    C 言語にフォーマルセマンティクス (操作的意味論) を与えたとかいう論文 An abstract dynamic semantics for C (1997) を,いきなり読むのは厳しそうだったので,そもそも dynamic semantics ってなんじゃい ! とテキトーに検索してみたら. C 言語のための現実的なポインタ解析 という日語の論文が見つかったので (直接的にはあんまり関係ないけど) ちょっと読んでみた.あんまりちゃんとは読んでないけど… ポインタが,どこのメモリ領域を指すか,みたいな解析には抽象実行というテクニックを使うのが普通らしい. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of

    cloned
    cloned 2007/02/03
  • 「ゼロから始めるC」グループを作ってみた - cloned.log

    http://clang.g.hatena.ne.jp/ 結局C言語なの?って場面に色々と出くわしたので、そろそろC言語も勉強しなければいけないなと思ったのだけれど、何もないとサボるので大仰にグループを作ってみた。現在独りっきりだけどw そして日記はこちら。 http://clang.g.hatena.ne.jp/cloned/ 助けてあげるよとか、一緒に勉強しようという方がいれば、一緒にどうぞ。一応承認ありにはしてますが、すぐに承認しますんで。

    「ゼロから始めるC」グループを作ってみた - cloned.log
    cloned
    cloned 2007/01/17
  • C言語: UNIX最速ファイルコピー

    Created: Kazuki Ohta, 2006/06/14 Last Update: Kazuki Ohta, 2006/06/14 「write(2)の正しい使い方」と同じく、OS演習でやった事の延長線の記事を書いてみる。お題は「UNIX上で大規模ファイルを最速でコピーする方法」だ。一般的に、UNIXでファイルをcopyする際には以下のような方法が有る。 read -> write read -> write with posix_fadvice mmap -> mmap -> memcpy -> fsync mmap -> mmap -> memcpy -> fsync with madvise mmap -> write mmap -> write with madvise read, write, mmap辺りは良いとして、posix_fadviseというシステムコールが有

    cloned
    cloned 2006/06/22
  • 1