タグ

cに関するfuryaのブックマーク (5)

  • 【ハウツー】Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (1) google-perftoolsとは | エンタープライズ | マイコミジャーナル

    google-perftoolsはGoogleによって提供されている、C/C++アプリケーションのパフォーマンスを改善するための開発ツールキットである。2005年3月に初めて公開され、およそ4年を経て7日に正式版がリリースされた。The BSD Licenseの下で提供されており、LinuxをはじめとしてFreeBSD、Mac OS X、Solaris 10、Windows XPなど、各種プラットフォームでの動作が確認されている(ただし、Linux以外については一部機能を除く)。 google-perftoolsには次に挙げる4つのツールが含まれている。 高速メモリアロケータTCMalloc ヒープチェッカー ヒーププロファイラ CPUプロファイラ TCMalloc(Thread-Caching Malloc)は通常のmallocよりも高速なメモリ割り当てを実現するライブラリであり、テスト

    furya
    furya 2009/09/10
  • ファイル入出力 (fgets( )!=NULL)

    第17章 ファイル入出力 ファイル入出力関数はキーボードや画面ではなく、ファイルに対して入出力を行います。ファイルは画面出力とは異なり出力結果の保存が可能ですので、覚えておくと何かと重宝します。 尚、ファイル入出力関数を使用するには、#include <stdio.h> する必要があります。 17-1.ファイル操作手順 ファイル入出力は通常、以下の手順で行います。 ファイルポインタとはFILE型へのポインタです。 FILE型では入出力の現在位置(ファイル位置指示子)、ファイルの終端に達したかの情報(ファイル終了指示子)、エラー情報(エラー指示子)、関連するバッファへのポインタなどのファイルの入出力を行う上での必要不可欠な情報を管理しています。 ですから、ファイル入出力を行う際には必ず、このファイルポインタを fopen()によって取得しなければなりません。 また、入出力操作の完了とともに必

    furya
    furya 2009/04/06
    windowsのfopenでテキストモード/バイナリモードが別になっていることについて
  • ポインタとメモリと型(構造体)の関係 (2) - C言語 - 碧色工房

    これは Cygwin 上の gcc での結果で Visual C++ を利用した場合 long double は 8Byte となります。 あと、 sizeof の結果は char いくつ分のサイズかを返す訳ですが、今回実験している環境だけではなく、 ほとんどの処理系では char は 8bit(1Byte)であるため(っていうかそうじゃない処理系ってあるのかなぁ)、 ここでは sizeof の返す値の単位を Byte であるとして話を進めています。 さらに、何度も書いていますがここでやっていることは、ほとんどが処理系依存で、 このような結果になることを前提にプログラムを書くと、非常に移植性の低いものになってしまいます。 また、同じ環境でもコンパイラの最適化の影響とかを受ける可能性もないわけではありません。 ハードウェア的にどうのといってる部分がいっぱいありますが、 正直なところ私はそっち

    ポインタとメモリと型(構造体)の関係 (2) - C言語 - 碧色工房
  • プラグマ

    #pragma keyword #pragma keyword (a [ , a] ... )[ , keyword ( a [, a ] ... )] ,... #pragma sun keyword 変数 keyword は特定の指令を示し、a は引数を示します。 Sun WorkShop C++ コンパイラが認識する一般的なプラグマのキーワードを次に示します。 align - デフォルトを無効にして、パラメータ変数のメモリー境界を、指定したバイト境界に揃えます。 init - 指定した関数を初期化関数にします。 fini - 指定した関数を終了関数にします。 ident - 実行可能ファイルの .comment 部に、指定した文字列を入れます。 pack (n) - 構造体オフセットの配置を制御します。n の値は、すべての構造体メンバーに合った最悪の場合の境界整列を指定する数字で、

  • Visual C++でアラインメントを扱う3つの機能、#pragma pack, __declspec(align(#)), __alignof演算子についてのメモ 【▲→川俣晶の縁側→ソフトウェア→技術雑記】

    構造体などのアラインメントは、16bit用ソースを32bitで使う場合に問題になる場合があります。おそらく、同様に32bit→64bitのケースでも問題になるケースがあると思われるので、今からメモっておく価値がある? サンプルソースはVisual Studio.NET 2003のWin32コンソールアプリケーション用で、プリコンパイルヘッダー関係は割愛しています。解説はWindowsの32bit環境であることを前提としています。 #pragma packの使用例 § ソースコードの途中でアラインメントを変更します。 それだけでなく、pushとpopの機能を使うと、一時的に変更したものを戻すことができます。 コマンドラインオプションでも変更できますが、それによってソースコードの途中で切り替えることはできません。 サンプルソースを以下に示します。 アラインメントを変更した構造体と、変更しない構

  • 1