タグ

ブックマーク / yupo5656.hatenadiary.org (6)

  • memologue - C/C++の定数の型の話, C90/C99の差分のびみょーな話

    Cのソースコードに m = 195; とか n = 0xffffffff; とか書いたときの定数(右辺)の型って、なんであるかご存じでしょうか? また、C90(1990年版のISO C言語規格)とC99(1999年版のそれ)ではその型が微妙に異なったりすることがあるんですが、ご存じでしょうか? さらには、お使いのマシンがILP32であるかLP64であるかLLP64であるかによっても、微妙に型が違ってきたりするんですが、それについてはどうでしょうか? えーもちろん、普段は「Uがついてなかったらint, Uがついてたらunsigned intジャネーノ?」くらいの理解でも殆ど不自由しないわけですが、詳細な理解がないとハマるケースも稀にあります。 私はというと、上に書いたような事は、C90/99の差違を除いてはだいたい理解しているつもりだったのですが、C90/99の差異について無頓着だったがため

    memologue - C/C++の定数の型の話, C90/C99の差分のびみょーな話
    gymno
    gymno 2007/02/19
    "整数定数の型は、次の並びのうちでその値を表現できる最初の型とする。"
  • memologue

    google-perftoolsというx86,x86_64,ppcなUNIX向けのプロファイラの(cpu-profiler部分)を、armなLinuxに対応させてみました。何かの役に立つかもしれないので、patchおよびpatch作成作業のメモを載せます。arm-v5tアーキテクチャ(ARM9系)向けの移植です。 Linux/ARM向けのソフトウェアのパフォーマンスを解析したいなぁと思うことがあったのですが、OProfileはカーネル入れ替えがめんどくさい、gprofはプロファイル専用のバイナリを作成するのがめんどくさい、プロプラな奴は興味ないということで移植しました。移植の方がめんどくさいだろという話もありますが。perftools自体の説明はこちらが便利です。あーそういえばAndroidもARMでしたっけ? パッチ http://binary.nahi.to/google-perfto

    memologue
  • Binary2.0 Conference 2006 発表資料 - memologue

    b2con 2006の発表資料を置きました。 "Hello, binary world!" (PDF, アニメなし) ご来場頂いた皆様、主催者の皆様、どうもありがとうございました。わたし自身もとても楽しめました。IRCの様子が会場でも見られたのはよかったと思います*1。他のスピーカーの皆さんの発表資料はこちら。 (追記) 会場でDan Kogaiさんに質問いただいた、__attribute__の括弧が二重なのは何故?という件なんですが、y-hamigakiさんが解説を書いてくださっています。ありがとうございます。なるほど。 *1:会場設営時に、shudoさんが機転をきかせてスクリーンを設置してくださったようです

    Binary2.0 Conference 2006 発表資料 - memologue
    gymno
    gymno 2006/12/22
    蹂躙されるmain "hello world!"
  • C++ で SICP - memologue

    計算機プログラムの構造と解釈 の問題を、Schemeで一問一問解いてゆくのが流行りな2006年でした(師走気分)。このSICPをHaskellやCleanで解いている方はいますが、意外にもC++で解いている人が見当たらないので(注: あたりまえ)、C++のテンプレートはさっぱりよくわからんなぁと思いつつ適当にやってみます。ネタです。 [ネタ1] exercise 1.45, 1.46 まずは、問題1.45-1.46を。これらは1章の最終問題で、1章で学んだ手続き抽象のテクニック全てを使う感じがして楽しいです。xのn乗根を反復改良法で求める関数 nth-root を作るという設問です。 まずはSchemeで解く 私の拙いスキーム力を用いて書いてみるとこんな感じ*1? (define (compose f g) (lambda (x) (f (g x)))) (define (repeated

    C++ で SICP - memologue
  • zshで16進→10進変換

    これは便利。bashでも使えます。 % echo $((0x12)) 18 % $((0x12)) zsh: command not found: 18Binary Hacksの校正フェストの際に教えてもらいました。知らなかった〜。さっそく愛用しています。

    zshで16進→10進変換
  • mainを一度も呼ばないばかりか蹂躙する - memologue

    shinhさんの「ふとイヤなコードを思いつきました」にインスパイヤされてみました。 % cat iyana.c #include <stdio.h> #include <stdlib.h> int main; __attribute__((constructor, destructor)) static void x() { if (main) puts("world!"); else exit(main = puts("hello")); } % gcc -Wall iyana.c iyana.c:4: warning: ‘main’ is usually a function % ./a.out hello world!意味はありません。っていうかこの警告ははじめて見たわ。教えてくれなくても存じていましてよ。 (追記) shinhさんの8/29の日記にさらに凄いのが。 トラックバックし

    mainを一度も呼ばないばかりか蹂躙する - memologue
  • 1