タグ

cに関するtakefのブックマーク (10)

  • clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション

    Emacs エディターで C 言語のプログラムを書く人向けに、入門用の解説がないように思う。そこで、知っておくと便利な機能をまとめてみた。 読者は、Emacs の操作とカスタマイズが最低限できる人を対象にしている。つまり、C-x C-f といったショートカット・キーが使えて、.emacs の設定ファイルがいじれる人。各機能について、基的な使い方とその効果、あと最低限の設定について書き出した。 目次 ソースの色付け インデント アラインメント コメント info マニュアル スペル・チェック タグ・ジャンプ 関数名の補完入力 コンパイルとエラー行ジャンプ ChangeLog ファイル 1. ソースの色付け Emacs は、C 言語のソース・ファイルを解析して、if や for といったキーワードに対して、自動で色を付ける。 色を付けることでソースにメリハリが生まれ、可読性が上がる。また、ス

    clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション
    takef
    takef 2006/12/19
  • Kazuho@Cybozu Labs: C - a pseudo-interpreter of the C programming language

    « URL と Base64 | メイン | C-0.02 » 2006年01月06日 C - a pseudo-interpreter of the C programming language PerlRuby では、ワンライナーで処理が書けて便利です。でも、なぜか C では書くことができません。仕事上の都合で、小さな処理を C 言語で書く必要があったので、ワンライナーも書くことのできる C 言語のインタプリタ(?)を作ってみました。 ダウンロードして、 /usr/bin にでもコピーすれば、インストール完了です。 2005/01/10 追記: 最新情報は Cインタプリタ アーカイブをご覧ください 使い方は、こんな感じです。 % C -e 'printf("hello world\n"); hello world % C --help C - a pseudo interpret

    takef
    takef 2006/01/14
  • "comb sort" Motoyuki's Diary:2000年5月下旬

    昨日から延々とサーバ構築。 SCSI HDD の騒音に耐えかねて再インストール決行。 旧おうちサーバで使っていた 20GB IDE HDD を入れて IDE 10GB + 20GB 体制にする。 データの転送に時間をとられた *1ため、ほぼ二日間の間メールの読み書きができなかった。

    takef
    takef 2005/12/29
    bubble sortの改良
  • こんなプログラムはいやだ: INT_MIN / -1 - bkブログ

    こんなプログラムはいやだ: INT_MIN / -1 昨日とは別の知人から、INT_MIN / -1 を計算するとおもしろいことになると教えてもらいました。次の C のプログラムをコンパイルして実行するとどのような結果になるでしょうか。 #include <limits.h> int main () { volatile int a = -1; printf("%d\n", INT_MIN / a); return 0; } 結果は、プラットフォーム依存ですが、 x86 の上では SIGFPE (Floating point exception) で落ちると思います。 例によって、volatile をつけているのはコンパイラの最適化を防ぐためです。-1 をいったん、変数 a に入れているのも、コンパイラがコンパイル時に計算を済ませてしまうのを防ぐためです。 GCC で x86 用のインライ

    takef
    takef 2005/12/01
  • こんなプログラムはいやだ: float++ - bkブログ

    こんなプログラムはいやだ: float++ 次の C言語のプログラムをコンパイルして実行するとどうなるでしょうか。 int main () { volatile float i; for (i = 0; i < 100000000; ++i); return 0; } おそらく、多くのプラットフォームでは、無限ループになると思います。これは、IEEE754 の単精度浮動小数点の有効桁数が24ビットであり、224 を超えると数値に誤差が入るためです。volatile を指定しているのはコンパイラの最適化により i がレジスタに入るのを避けるためです。 上のプログラムは、なんとなく float の挙動が気になったため書いたものですが、パズル的な要素もあるかと思い、紹介してみました。身近なプログラマをいやがらせるのに使えるかもしれません。

    takef
    takef 2005/11/29
  • いやなブログ: 普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す

    普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す Linux などの多くの Unix 的なOS には ptrace というシステムコールがあります。 ptrace を使うと実行中のプロセスに対して、レジスタの書き換えやメモリ上のデータの書き換えといったさまざまな操作を行うことができます。 普通のやつらの下を行けの第6回として、今回は ptrace を使って実行中のプロセスにちょっかいを出す方法を取り上げたいと思います。 ptrace とは デバッガの理論と実装 に次のような記述があります。 Unix の ptrace() は物のデバッガ API (アプリケーションプログラムインターフェイス) の一例であり、商品に相応しい品質を持ったデバッガをサポートするために設計された、最初の専用 API の1つである。 ptrace はデバッガ用に作られた API のようで

    takef
    takef 2005/11/14
  • POINTER「配列とポインタの完全制覇」「C言語 ポインタ完全制覇」

    タイトルは「C言語 ポインタ完全制覇」。 このページの書籍化とはいえ、内容の大半は書き下ろしですので、 既にWebで読んでおられる方にも決して損はさせません。 詳細はこちらへどうぞ。 「C言語 ポインタ完全制覇(第2版)」書籍情報 「C言語 ポインタ完全制覇」書籍情報(旧版) 技術評論社さんによる書籍案内はこちら。 第2版 旧版 修正履歴は、このページの末尾にあります このページについて 全くもって僭越ながら、恐れおおくも偉そうにも、 こんな文書をWWWで公開させていただくことにしました。 この文書は、もともと社内向けの教科書として作成したものです。 私は、一介の文系出身プログラマであり、 特に情報関係の教育を受けたわけでもなく、 プログラミング言語に深い造詣を持っているわけではありません。 この文書にも多くの誤りや、誤解を招く表現があるかと思います。 そのような記述を見付けられた方は、ぜ

  • 普通のやつらの下を行け: Cで動的コード生成・実行 - bkブログ

    普通のやつらの下を行け: Cで動的コード生成・実行 スクリプト言語には動的にコードを生成して実行する機能を持ったものが多くあります。 普通のやつらの下を行けの第3回として、今回は C による動的なコード生成と実行に取り組んでみたいと思います。 今回書いたコードの main() 関数は以下のようなものです。 int main(int argc, char **argv) { assert(argc == 2); define(int, add, (int x, int y), "{ return x + y; }"); define(int, mul, (int x, int y), "{ return x * y; }"); define(int, add_argv1, (int x), "{ return x + %d; }", atoi(argv[1])); printf("%d\n"

    takef
    takef 2005/10/26
  • 普通のやつらの下を行け: C でバックトレース表示 - bkブログ

    普通のやつらの下を行け: C でバックトレース表示 普通のやつらの下を行けの第2回として、今回は glibc の関数を使って C でバックトレース (スタックトレース) の表示を行ってみます。 バックトレースとは バックトレースとは、大ざっぱに言うと、現在の関数に至るまでの道筋です。たとえば、次の Ruby プログラムを実行すると、 1 / 0 の行で例外が発生して、バックトレースの表示とともにプログラムは異常終了します。 def foo 1 / 0 end def main foo end main この例では main から foo を呼び foo の中の 1 / 0 の部分で例外が発生しています。 % ruby divide-by-zero.rb divide-by-zero.rb:2:in `/': divided by 0 (ZeroDivisionError) from div

    takef
    takef 2005/10/25
  • Debugging with GDB - Table of Contents

    The GNU Source-Level Debugger Seventh Edition, for GDB version 4.18 February 1999 Richard M. Stallman and Roland H. Pesch GDBの要約 フリー・ソフトウェア GDBに貢献した人々 GDBセッションのサンプル GDBの起動・終了 GDBの起動 ファイルの選択 モードの選択 GDBの終了 シェル・コマンド GDB コマンド コマンドの構文 コマンド名の補完 ヘルプの表示 GDB配下でのプログラムの実行 デバッグのためのコンパイル ユーザ・プログラムの起動 ユーザ・プログラムの引数 ユーザ・プログラムの環境 ユーザ・プログラムの作業ディレクトリ ユーザ・プログラムの入出力 既に実行中のプロセスのデバッグ 子プロセスの終了 プロセス情報 マルチスレッド・プログラムのデバッグ マ

    takef
    takef 2005/02/11
  • 1