タグ

GCCに関するsyanbiのブックマーク (5)

  • printf("%d", f)でfがfloatの時の挙動について - 西尾泰和のはてなダイアリー

    型はバイト幅だけじゃなくてどうやって二進法でエンコードするのかも規定するよね、という話をしていて確認のためのコードを書いた。手抜きをして方法Bでやってもいいよね、と思ったら予想外の結果が出たので悩んでいる。→解決 #include<stdio.h> int main(){ int i; float f = 1.0; /* 素直な方法 A (追記:やっちゃダメ!)*/ i = *(int*)(&f); printf("A %d\n", i); /* 手抜きな方法 B */ printf("B %d\n", f); } Rubyでこんな感じに文字列化して、と。 irb> def pp(x) x.to_s(2).rjust(32, "0") end irb> pp 1065353216 => "00111111100000000000000000000000" 0.500000の時 A 1056

    printf("%d", f)でfがfloatの時の挙動について - 西尾泰和のはてなダイアリー
  • Go言語、GCCのメインラインに取り込まれる | スラド デベロッパー

    GCC 4.6ではGo言語コンパイラ「Gccgo」がサポートされる見通しだ。 今月初め、GCCのメンテナの1人であるIan Lance Taylor氏が、GCCのメインラインにGo言語のフロントエンドであるGccgoをコミットしたと述べている。これは来年初めにリリースが予定されているGCC 4.6がGo言語をサポートすることを意味している。しかし、Go言語はまだ開発中の段階であるため、GCCがサポートするGo言語は(仕様的に)古いものになってしまう可能性がある。これは将来的に問題となるかもしれない。

  • max, min 関数の最適化と x86 の cmov 命令 - yuyarinの日記

    max 関数や min 関数は C 言語だと自分で書かないといけないので int max(int a, int b) { return a>b?a:b; } などと書いたりするのだが,比較を行っているので分岐が発生するから遅くなると思い,これって当に速いのかと思って調べてみた. 実験 以下の5つのコードを用意した.これらをそれぞれ max 関数の実装とした.検証用のコードは最後に載せる.PHP でランダムな2数値を作ったデータを 1,000,000 組用意し,入力データとして配列に読み込んだあと,ループで max 関数を実行した.このループの前後で gettimeofday で時間を測り,所要時間を算出した.それぞれの実装に対し所要時間の5回の平均をとって比較した.コードは gcc version 4.2.1 (Apple Inc. build 5664) でオプション無しでコンパイルし

    max, min 関数の最適化と x86 の cmov 命令 - yuyarinの日記
    syanbi
    syanbi 2010/11/27
    コンパイラの最適化について。条件演算子が一番比較で早いのはなぜかという内容のエントリ
  • gmane.org - gmane リソースおよび情報

    gmane.org は、あなたがお探しの情報の全ての最新かつ最適なソースです。一般トピックからここから検索できる内容は、gmane.orgが全てとなります。あなたがお探しの内容が見つかることを願っています!

    syanbi
    syanbi 2010/01/29
  • フリーソフトウェア徹底活用講座(5)

    ここでは,GCCの実行時に影響を及ぼす環境変数について記します. ファイルを探索する際に利用されるディレクトリ,または接頭語を指定することによって作用を及ぼします.また,環境変数はコンパイル環境の他の側面を指定するためにも使われます.探索される場所については,-B,-I,-Lのようなオプションを使うことによっても指定可能であることに注意してください(第4回で説明した「ディレクトリ探索のためのオプション」を参照). もちろん,コマンドラインオプションによる指定は,環境変数による指定よりも優先されます.一方,環境変数による指定は,GCCのコンフィグレーションにおける指定よりも優先されます. ● LANG ● LC_CTYPE ● LC_MESSAGES ● LC_ALL 以上の環境変数は,異なる国の慣習をサポートできるようにGCCがローカライズ情報を使う方法をコントロールします. GCCは,c

  • 1