タグ

Cに関するheiwabokeのブックマーク (31)

  • C/C++ で使える Hashtable - いけむランド

    Java のように豊富なライブラリを標準で提供している開発言語を使い慣れてしまうと、ふと C に戻った時に「リストとかハッシュテーブルがないから、再実装するか...いやそれともライブラリを探してきた方がいいか...。」と嘆くこともしばしば。 そこで以前 C/C++ 言語で使用できるハッシュテーブルについて調べたものを簡単にまとめておく。 glibc 言わずと知れた GNU の標準 C ライブラリ。search.h というヘッダがあり、その中にハッシュテーブルを管理できる API が提供されている。 STL (Standard Template Library) C++ の標準テンプレートライブラリ。hash_map がハッシュテーブルを提供するクラス。 GLib gtk+ のために設計・実装された低レベルライブラリ。GHashTable がハッシュテーブルを提供する構造体。 Eet EFL

    C/C++ で使える Hashtable - いけむランド
  • 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/

  • ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改

    ディレクトリの中にある大量のファイルを高速に読み込む方法が知りたかったので、実験してみた。想定しているシチュエーションは、一つ一つのファイルは数KB程度だが数が多い、という場合である。適当な順番でアクセスすると、ランダムアクセスになってしまいとても時間がかかる。個々のファイルを読み込む順番はどうでも良く、すべてのファイルを処理することさえできればいいので、原理的にはシーケンシャルアクセスで処理できてしかるべきである。 まず、ファイルシステムについて。HDDやSSDなどのハードウェアにアクセスする際には、ファイル名などという概念はもちろん存在しない。ファイル名と実際のディスク上の対応を管理するのがファイルシステムの主な役割である。ファイルシステムは、ファイル名からそのファイルに対応するブロック番号(メモリアドレスみたいなもんだな)を調べて、そのブロック番号を指定してHDDやSSDにアクセスす

    ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改
  • C 言語によるオブジェクト記述法 COOL

    C 言語によるオブジェクト記述法 COOL ver.2 C-language's Object Oriented Language ver.2 [検索] 目次 0. はじめに 1. クラスの記述, 属性の記述 2. 操作の記述 3. クラス属性の記述、定数の記述 4. 初期化操作と後始末操作の記述 4-1.処理効率優先インターフェイス 4-2.再コンパイル不要インターフェイス 4-3.動的バインディング・インターフェイス 5. 状態取得操作と状態設定操作とイベントハンドラの記述 6. 集約の記述、継承の記述 6-1.集約の記述 6-2.継承の記述 6-3.多重継承の記述 6-4.重複継承の記述 6-5.動的継承の記述 7. 多態性(多相性)、インターフェイス継承の記述 7-1.多態性の記述 7-2.多態性を持った生成の記述 7-3.多重継承の多態性の記述 7-4.重複継承の多態性の記述 7

  • C/C ―Programming Tips―水無瀬の部屋

    [PR] C言語 戻る 目次 / C・C++ / Windows / Visual C++ / その他 主に C/C++ を中心とした話題。 ・年月日から曜日を求める ・二つの値を交換する ・ワイルドカード('*', '?')を使って文字列を比較する ・指定の年が閏年かどうか判定する ・指定の年月日が有効であるか判定する ・指定の年月日がグレゴリウス歴の範囲内かどうか判定する ・二つの値から大小関係により一方を選択する ・条件演算子(?:)を使う ・ファイルに文字列単位の入出力操作を行う ・最大公約数、最小公倍数を求める ・printf, fprintf, sprintf 使用上の注意 ・部分文字列を取り出す ・文字列を移動する ・部分文字列を置換する ・タブ文字 '\t' を展開する ・シフトJIS文字列の判定 ・配列の要素数を計算する ・assert マクロを使う ・verify マク

  • mixi Engineers’ Blog » libmemcachedで快速キャッシュ生活

    みんな大好きなmemcached。今日はBrian AkerのC言語用クライエントライブラリについて書きたいと思います。日語の情報がとても少なく、ドキュメンテーションも英語だけという事で興味はあるけど手をつけていないという方のお役に立てれたらなと思います。 題の前に why libmemcached? 既にlibmemcacheが存在するのに何故、libmemcached?かと言うと理由の一つは最近libmemcacheの開発が止まったからです。家ではそれが理由でlibmemcacheではなくlibmemcachedを推奨してますね。又、効率的なメモリ使用、Consistent Hashing、様々なハッシュアルゴリズム、新しいオペレータに対応している等という宣伝文句があります。apr_memcacheというライブラリも存在しますが自分は使った事がないためノーコメント。 ただ、推奨さ

    mixi Engineers’ Blog » libmemcachedで快速キャッシュ生活
  • strcpy や memcpy と愉快な仲間たち - いけむランド

    以前 strcpy とか memcpy の実装の違いが気になったので、ちょっと調べてみた時の話を加筆・修正した。 まずはとてつもなく適当なテストプログラム。 #include <stdio.h> #include <string.h> #include <sys/time.h> #define BUF_SIZE 0x10000000 #define TRIAL_COUNT 5 char src[BUF_SIZE], dst[BUF_SIZE]; int main(int argc, char** argv) { printf("src : 0x%08x\n", src); printf("dst : 0x%08x\n", dst); puts(""); memset(src, 0xff, BUF_SIZE); src[BUF_SIZE - 1] = 0; memcpy(dst, src,

    strcpy や memcpy と愉快な仲間たち - いけむランド
  • Makefileの書き方 - スキルアップ輪講

    makeって何? † ソースファイルを分割して大規模なプログラムを作成していると、コマンドでコンパイルするのが面倒です。また、一部のソースファイルを書き換えただけなのに全部をコンパイルし直すのは時間の無駄です。 そんな問題を解決するのがmakeです。Makefileと呼ばれるテキストファイルに必要なファイルと各ファイルのコンパイルのコマンド、ファイル間の依存関係を記します。そして、“make”というコマンドを実行するだけで、自動的にコマンドを実行してコンパイルしてくれます。これだけではスクリプトと大差がないのですが、makeはMakefileに記された依存関係に基づいて更新されたファイルの内関連のあるものだけを更新することで、コンパイル時間を短くします。 makeは特定のプログラミング言語に依存したものではありません。C言語のソースファイルのコンパイルにも使えますし、Verilog-HDL

  • Big Sky :: ニコニコ動画をダウンロード出来るプログラムをC言語で作ってみた。

    追記 最新版はgithubで作ってます。 mattn's nicodown at master — GitHub http://github.com/mattn/nicodown/tree/master 適当だけど書いてみた。 タイトル取って来る所はlibxml使うの面倒臭かったのでXMLパーサ使わずベタで(実態参照文字あると変になるので気を付けて)。Windowsの場合だけWin32 APIでシフトJISにファイル名を変換しています。 荒いコードなので色々直し所がありますが、サンプルって事で。 //#define CURL_STATICLIB #include <curl/curl.h> #define HEX_DIGITS "0123456789ABCDEF" #define IS_QUOTED(x) (*x == '%' && strchr(HEX_DIGITS, *(x+1)) &

    Big Sky :: ニコニコ動画をダウンロード出来るプログラムをC言語で作ってみた。
  • 【インフォシーク】Infoseek : 楽天が運営するポータルサイト

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

  • メインページ - 謎のプログラミングHP

    C言語例題 Windows 環境における Cygwin/gcc (g++) でコンパイル・実行できることを目標にしたC言語の例題です. UXIX 環境での gcc で利用できるプログラムもありますが,GUI 等に関係するものは完全に Windows 依存のプログラムです. Windows 環境で利用できるプログラムでは,VFW (Video for Window) や MP3 から PCM 音源 (WAVE) への変換等の例題等もありますので,参考にしてみてください.