タグ

cに関するmFumiのブックマーク (17)

  • 行列ライブラリの設計(1) 8 動的配列

    2.8 動的配列 (1999/04/10 初版) 2.8.1 汎用的な関数 前のページで見たように、2次元配列を関数でやり取りするには、少なくとも配列 の後ろの添字サイズを指定する必要があります。例えば2次元配列 int mat[10][20]; を関数に渡すには、次のようなプロトタイプ void func(int (*a)[20], int row, int col); で宣言される関数が定義されている必要があります。関数は大きさが20の配列を指 すポインタaで受け取ります。 しかし、これでは関数に汎用性がありません。違うサイズの配列をこの関数に渡す ことができないからです。ここでは任意のサイズの2次元配列を扱える汎用的な関数 をつくります。 2.8.2 準備:ポインタを指すポインタ まず準備として、これまでの知識を使った演習問題を考えましょう。上述の関数 func()で「int (*)

    mFumi
    mFumi 2010/09/26
  • C/C++: Optimization of pointers to string constants

    mFumi
    mFumi 2010/06/01
    文字列定数の最適化
  • 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言語で作ってみた。
    mFumi
    mFumi 2010/04/18
  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
    mFumi
    mFumi 2010/04/18
  • 標準Cライブラリの実装

    しばらく忙しくて放置していますが、また春頃になれば、それなりに注力できる可能性があります。もっとも、そのころになれば、JSPカーネルではなく、ASPカーネルに対応することを考えるような気もしますが...。 さて、このたび、このブログで公開しているソースコードのライセンスに関して質問を受けました。このブログは、あくまでも実装レポートで、私が実装中に考えたことや、判断に迷ったことなどを交えながら、記録を残して行けたらと思って始めたものです。現在公開されている内容も、ざっと動作は見ていますが、いろいろバグも指摘されていますし、私自身も過去の記事のバグを見つけています。 そんな感じで、まだ現状では非常に完成度は低いと考えてください。それでもよければ、あくまでも自己責任の下で、自由に利用していただいてかまいません。ただし、(合法・非合法にかかわらず)反社会的または反人道的な用途への利用だけはご遠慮く

    mFumi
    mFumi 2010/03/16
  • Super Technique 講座~目次

    このページは、C言語の中級テクニックを中心に解説する。長らくプログラマをしていると、C言語の面白い使い方例が蓄積している。これらを一挙公開するために、このページを作ったのである。しかし、単にCに留まらず、他の言語の面白い特徴なども紹介していく。 内容的にはかなりヘヴィである。当然のことながら、「ポインタ虎の巻」程度の内容はちゃんと使いこなせることを前提とする。意外な技、落し穴、派手なテクニックなど、内容満載だが、ちゃんとデータ構造とアルゴリズムなども説明できれば良いと思う。(まあ、ぼちぼちやってきいます...) 以下の目次には手引きのために、評価がつけてある。凡例として示す。 レベル その解説で記載されている内容のレベル 有用度 その内容が実際に役に立つものかどうか 邪悪度 その内容が薦める方法が、一般的なコーディング規約の中で「邪悪」とされがちなものであるか否か。関数ポインタの活用(濫用

    mFumi
    mFumi 2010/02/25
  • プログラミング - WisdomSoft

    C 言語入門 世界中で使われている最も基的なプログラミング言語です。 C++ 入門 C 言語を継承し、オブジェクト指向を導入した高度な言語です。 C# 言語入門 Microsoft の洗練されたオブジェクト指向言語です。 D 言語入門 最新の設計思想が導入されている実践向け開発言語です。 Java 言語入門 Sun が開発した有名なオブジェクト指向言語です。 Objective-C入門 GCC で実装されているオブジェクト指向型 C 言語です。 Lisp入門 人工知能の研究や教育に使われるプログラミング言語です。 Perl 言語入門 多くのシステムで整備されている高度なスクリプトです。 PHP入門 近年、Webを中心に幅広く利用されている組み込み言語です。 アセンブリ 言語入門 アセンブリは機械語に直結した言語です。

  • cscope: 対話的な C プログラムの検査

    第 9 章 cscope: 対話的な C プログラムの検査 cscope は、C、lex、または yacc のソースファイル内のコードの特定の要素を探し出す対話型プログラムです。cscope ブラウザを使用すると、従来のエディタよりも効率的にソースファイルを検索、編集できます。これは、cscope が関数呼び出し (関数がいつ呼び出され、いつその関数を実行するか) についてと、C 言語の識別子と予約語を理解しているためです。章は cscope ブラウザについて説明します。 この章は、このリリースに付属している cscope ブラウザの使い方を学ぶための資料として利用できます。説明項目は次のとおりです。 「cscope プロセス」 「基的な使用方法」 「不明な端末タイプのエラー」 cscope プロセス cscope は、C、lex、yacc のソースファイルを読み取り、ファイル内の関

    mFumi
    mFumi 2010/01/30
  • PKU JudgeOnline

    4DM.org トップ / PKU / D言語 / グラフ理論 / ステレオグラフィックス / Cozy Ozy / アンテナ / リンク / ダウンロード / プロフィール PKU JudgeOnline PKU JudgeOnlineとは、世界各国で過去に行われたプログラミングコンテストの問題を集めていて、解答のプログラムを送ればすぐに正解・不正解を判定してくれて、しかも実行メモリサイズ・実行時間・コードサイズなどで順位が付くので結構燃えます(笑) ここでは、このPKU JudgeOnline(略してPKU)の問題について、私が多くの超絶プログラマーから知恵を頂きながら書き上げた最短コードを書くテクニックを載せている。「最短コードなんて、結局C言語Hack集じゃねーの?」と思う方も多いかもしれない。たしかにそういう側面もあるが、最短コードというのは小細工だけでは達成できない。消費メ

  • Making The Road Blog - 二次元配列とダブルポインタの関係

  • C言語のfloat値のビットを表示する - はこべにっき ♨

    研究室で浮動小数点数の話題が出たときに気になったので、値のビットを表示するプログラムを書いてみた。 #include <stdio.h> #include <stdlib.h> union IntAndFloat { int ival; float fval; }; int main (int argc, char *argv[]) { int i = 0; union IntAndFloat target; target.fval = atof(argv[1]); printf("target = %f\n", target.fval); for (i = 0; i < 32; i++) { if ( (target.ival & 0x80000000) == 0x80000000) { printf("1"); } else { printf("0"); } target.ival =

    C言語のfloat値のビットを表示する - はこべにっき ♨
    mFumi
    mFumi 2009/11/14
  • Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ

    今年の文化祭で書いた記事です。 - C言語といえば、いやなイメージ、過去の遺産といった感じがあるかもしれません。 C言語のネガティブな側面というと、やはりポインタやメモリ管理などが難しい、ということが思いつくかもしれません。 しかし、C言語のポインタは表記に騙されやすいだけで、仕組み自体は全く難しくありません。 文法も、どこぞのPerlC++と比べたら屁でもない単純さです。 実のところ、仕様が煩雑で難しいのは、Cプリプロセッサなのであります。 普段からあまり複雑な使いかたをしないから気づかないかもしれませんが、Cプリプロセッサの置換処理は、欺瞞と裏切りに満ちた世界なのです。 これが進化するとテンプレートなどといったもっと面白いものになるのですが、今回はCプリプロセッサで計算をしちゃったりするところまで試しにやってみましょう。 (なお、GCCにより実験的に調べた記事なので、他のCコンパイラ

    Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
  • Bal4u : C/UVa

    人が得意としているのはC言語(C++でも,C#でもありません).数値計算・数論・ソート・検索・計算幾何学・符号・文字列照合等数多くのC言語用ライブラリがここに置いてあります. また,2004年末頃から,スペインにあるオンライン・プログラミング・コンテスト・サイト に参戦していた.参戦記や解答プログラムの一部もここに公開しています. 効率的に約数の個数を求めるアルゴリズムを考えているが、まだ四苦八苦している状態。つまり、1~500万までの整数について、それぞれの約数の数を一気に求めたい。 個々の整数なら、素因数分解して、因数の指数の積で約数の数が分かるのだが、1個1個やっているのでは、遅すぎて話にならない。 それよりも多少高速なプログラムは以下の通り。それでも数秒かかってしまう。 #define MAX 5000000 int c[MAX+10]; /* 約数の数を記録する */ void

    mFumi
    mFumi 2009/10/24
  • TCC : Tiny C Compiler

    News [Note: I am no longer working on TCC. Check the mailing list to get up to date information.] Features SMALL! You can compile and execute C code everywhere, for example on rescue disks (about 100KB for x86 TCC executable, including C preprocessor, C compiler, assembler and linker). FAST! tcc generates x86 code. No byte code overhead. Compile, assemble and link several times faster than GCC. UN

  • エスケープシーケンス - C言語 - 碧色工房

    サイトトップ 過去のコンテンツ C言語 エスケープシーケンス コンソール制御について、より詳しく、実際の出力例などを上げながら、 まとめたページを作りましたので以下も参照ください。 エスケープシーケンス ANSIエスケープコード コンソールグラフィック CUI のコマンドラインで動くプログラムを書く上でカーソルの位置などをコントロールできたらと思うことがあります。 こいつを実現するには、「エスケープシーケンス」というものを使います。 しかし、このエスケープシーケンスはハードウェアやOSに依存した部分が多いので注意が必要です。 とりあえず、 Windows 2000/XP (おそらく NT も)のコマンドプロンプトでは機能しない ※ことを確認しました。(ただし、 Cygwin 上では使用可能でした) MS-DOS プロンプトでは一部動くことを確認しました(一部が動いたのではなく、一部確認した

    エスケープシーケンス - C言語 - 碧色工房
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • http://w3-denki.maizuru-ct.ac.jp/siryou/text/jyoho3/zenki2/shaker/frame.htm

  • 1