タグ

Cに関するsadahのブックマーク (18)

  • ポインタの裏話

    ポインタの裏話 岡﨑 直観 okazaki at ecei.tohoku.ac.jp http://www.chokkan.org/ @chokkanorg ポインタの裏話 プログラミング演習A 1 このような説明を 覚えていますか? 知らなくても全く問題ありません ポインタの裏話 プログラミング演習A 2 int x = 0; &xは変数xの「アドレス」 「番地」「住所」を返す 変数x 0 &x メモリ空間, 記憶空間 変数xのアド レス(住所) ポインタの裏話 プログラミング演習A 3 ____ / \ 何言ってたんだこいつ? / ⌒ ⌒\ 番地 アドレス ぬるぽ / (●) (●) \ \ / | 、“ ゙)(__人__)" ) __________ \ 。` ⌒゚:j´ ,/ j゙~~| | | | __/ \ |__| | | | || / , \n||

    sadah
    sadah 2012/06/09
  • LeopardでのApacheモジュール作成作業記録 - wyukawa's diary

    Apacheモジュールの作成とgdbloggerでのデバッグ方法 - よねのはてな あまりに素晴らしいエントリなのでLeopardですこし試してみました。これは作業記録です。 作業前の状態 $ httpd -v Server version: Apache/2.2.9 (Unix) Server built: Sep 19 2008 10:58:54 $ httpd -M Loaded Modules: core_module (static) mpm_prefork_module (static) http_module (static) so_module (static) authn_file_module (shared) authn_dbm_module (shared) authn_anon_module (shared) authn_dbd_module (shared)

    LeopardでのApacheモジュール作成作業記録 - wyukawa's diary
  • Apacheモジュールの作成とgdbとloggerでのデバッグ方法 - よねのはてな

    ApacheのFilterモジュールを作った話しをしたらid:c9katayamaに情報公開しろと言われたままでしたので公開します。 C言語の勉強しようかな、Apache2.xのモジュールを作ってみようかな、gdb使ってデバッグしてみようかなと考えてた人にお勧めです。 JavaでのServletの開発経験のある人であれば、Filterの処理の動きやリクエストコンテキストの考え方は分かり易いはずなので、エントリを読み終わる頃にはApacheのモジュールをgdbでデバッグしながら作る事が出来るはずです。 mod_orzを作成 今回はmod_orzというApacheモジュールを作成します。 Apacheモジュールを作成する際には、apxsというモジュール開発用のコマンドを使用しテンプレートを作ります。 # apxs -g -n orz Creating [DIR] orz Creating [F

    Apacheモジュールの作成とgdbとloggerでのデバッグ方法 - よねのはてな
  • http://karetta.jp/book/cforjava

  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

  • Develogger: Emacs上でGDBを使用してデバッグする

    Emacs上でGDBを使用してC言語のプログラムをデバッグする方法をまとめます。 デバッグするプログラムは「sample.c」という簡単なプログラムです。 使用環境: Ubuntu Linux7.10 Emacs22 GDB6.6 ■ sample.c #include <stdio.h> void greeting(char *name); int main(int argc, char *argv[]) { int num1 = 10; int num2 = 100; int result = num1 + num2; printf("result=%d\n", result); greeting("satoshi"); return 0; } void greeting(char *name) { printf("Hello %s.\n", name); } 1. まず最初に「sam

    sadah
    sadah 2008/05/13
  • EmacsでGDBするときのコマンド

    よくつかうもの: C-x SPC ソース上でブレークポイントを設定 C-c C-s ステップ実行(関数に入る) C-c C-n ステップ実行(関数に入らない) C-c C-r 実行再開 ここに全部書いてる。ありがとうございます。 GNU Emacsマニュアル: Commands of GUD

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

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

    clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション
    sadah
    sadah 2008/05/13
    ;; C-c c で compile コマンドを呼び出す (define-key mode-specific-map "c" 'compile)
  • 【ハウツー】今こそ再考察! C言語ポインタ徹底解説 (1) ポインタと1次元配列の関係 | エンタープライズ | マイコミジャーナル

    C言語は、ポインタが使える言語です。ポインタを使えば、メモリの直接的な操作など、より柔軟なプログラミングが可能です。一方、そのためにはポインタがどのようなメモリ領域を指し示しているか、またポインタ自体が有効なアドレスを保持しているかなどについて十分な理解が必要です。 稿では、C言語のポインタについて、配列との対比に焦点を当てて解説を行います。 *** C言語では、ポインタを配列のように扱うことができます。また、配列名はポインタに変換可能で、別のポインタに代入できます。 まずは1次元の場合について、ポインタと配列の関係を考えてみましょう。 宣言文の記述 いま、ポインタと配列を次のように宣言したとします。 char *p; ← char型へのポインタpを宣言 char a[5]; ← char型を要素とする、要素数5の配列aを宣言 この宣言の結果を図にすると、図1、図2のようになります。 図

  • C/C++のポインタの機能--配列との関係 - builder by ZDNet Japan

    ポインタ変数と配列との関係 ポインタ変数と配列との深い関係を表す例を示そう。それは、配列の変数名をポインタ変数のように扱えるということだ。 int n[] = { 7, 3, 5, 9, 2 }; printf( "%d\n", *n ); /* 7 と出力される */ 上記は、nを5つのint型の要素を持つ配列として宣言した後、すぐに*nの値を表示させている。この結果は7と出力される。つまり、*nは配列の最初の要素(n[ 0 ])の値を表していることになる。 では、n[ 1 ]以降の値を*nを使って表すにはどうしたらよいだろうか。そのためには以下のように記述する。 int n[] = { 7, 3, 5, 9, 2 }; printf( "%d\n", *(n + 1) ); /* 3 と出力される */ printf( "%d\n", *(n + 2) ); /* 5 と出力される *

    C/C++のポインタの機能--配列との関係 - builder by ZDNet Japan
    sadah
    sadah 2008/04/14
    ポインタと配列
  • ロベールのC++教室

  • はてなブログ | 無料ブログを作成しよう

    【自分語り】1推しの卒業によせて . 私の1推し、ゆきりんこと柏木由紀ちゃんが、17年に渡り在籍したAKB48を卒業することになった。 この機会に、ゆきりん推し(48ファン)としての自分自身のことをすべては不可能であるものの振り返ろうと思う。 内容からして世代がわかることも仕方ないし、限りなくゼ…

    はてなブログ | 無料ブログを作成しよう
    sadah
    sadah 2008/04/14
    ポインタと配列と文字列
  • 2008-03-30

    from Yendot… コメントに「これはひどい…」とあったので、見てみるが…確かにこれはひどい 。タイトルは勢いあまってる程度とするにしても、解説の内容がとにかくひどい。つうか、サンプル動かねえw C/C++のポインタの機能--参照渡しのような処理って、タイトルもさることながら、1ページ目から突っ込みどころ満載である。 ちょっと見てみよう。 ポインタ変数の宣言 ポインタ変数の宣言では、一般の変数の場合とは異なり、名称の先頭に*がつけられる。以下はnというポインタ変数を宣言する例である。ここでは、*nが表す値のデータ型はintとなるが、それ以外のデータ型でポインタ変数を宣言すれば、*nはその型の値を表すことになる。 int *n; /* int型の値を表すポインタ変数nの宣言 */ int n; /* 一般の変数 n を宣言する場合 */ ここまではよい。単純に宣言の書き方と、その宣言が

    2008-03-30
    sadah
    sadah 2008/04/14
    ポインタと配列
  • http://www.machu.jp/posts/20080401/p01/

    sadah
    sadah 2008/04/14
    ポインタと配列
  • C 言語の配列について - IT戦記

    僕の理解も相当間違ってたみたいですね 「 *s 」と「 s[] 」の違い - IT戦記 書いてよかった>< 書かぬは一生の恥になるところでしたね! ありがたい突っ込みありがとうございます>< 404 Blog Not Found:c - *sとs[]の違い http://d.hatena.ne.jp/PyTest/20080404/1207273307 はてなブックマーク - 「*s = "...";」 と 「s[] = "...";」 の違い - IT戦記 だいたい分かった気がする 違ってたらきっと誰かが突っ込んでくれる>< 配列 ポインタはキモくなくて、配列がキモいってことが分かった。 あまちゃん: 配列は式の中に置くと「一部の例外」をのぞいてその場で「先頭要素のポインタ」の値として扱われるよ ひとちゃん: 式じゃないところってどこ>< あまちゃん: 宣言ぐらいじゃね ひとちゃん: で

    C 言語の配列について - IT戦記
    sadah
    sadah 2008/04/14
    ポインタと配列と文字列
  • 「 *s 」と「 s[] 」の違い - IT戦記

    沖林さんがんばれ! なんか、かわいそうになってきた><がんばってください! C/C++のポインタの機能--配列との関係 - builder by ZDNet Japan ところで 僕はちゃんと説明できるかな>< 少しでも言葉や概念が変だったら教えてください>< *s char *s = "hoge"; コードがロードされたときに文字列もメモリにロードされて、実行時にスタックにポインタ変数ができて文字列を指す。 文字列がロードされたメモリのページ(?)には、書き込み権限が付加されないので文字列の内容を書き換えることはできない。 .cstring str: .ascii "hoge" .text .globl _main _main: pushl $str ↑イメージ的にはこんな感じ s[] char s[] = "hoge"; コードがロードされたときに文字列もメモリにロードされ、実行時にス

    「 *s 」と「 s[] 」の違い - IT戦記
    sadah
    sadah 2008/04/14
    ポインタと配列と文字列
  • c - *sとs[]の違い : 404 Blog Not Found

    2008年04月04日03:00 カテゴリTips c - *sとs[]の違い これ、結構tricky。 The C Programmming Lanugage K&R 「 *s 」と「 s[] 」の違い - IT戦記 コメント欄にある「K&Rの5.3を読めばわかる」かというと多分わからない。それどころか P. 100 char s[]; and char *s; are equivalent; なんて書いてあるから余計わからなくなると思う。 なのだけど、すっごく簡単な覚え方がある。 答えは sの値を変更できるか 要するに char *s = "pointer"; printf("%s\n", ++s); はOKだけど、 char s[] = "array"; printf("%s\n", ++s); はNGということ。GCCなら error: wrong type argument to

    c - *sとs[]の違い : 404 Blog Not Found
    sadah
    sadah 2008/04/14
    ポインタと配列
  • Enjoy×Study - JavaでJNI(SWIGっていい!)

    C++で作られたライブラリを、Javaから使用するにあたって、JNIを調べていましたが、、 ネット上に転がっているJNIのサンプルは、簡単なものが多く、実際参考にするには情報が足りない。 SunのJNIのドキュメント(JNI - Java Native Interface)を読んだが、理解するにはちょっと時間が… ということで、SWIGを使ってみることにしました。 SWIGとは、CやC++で書かれたライブラリを、他の言語(主にスクリプト系の言語)から利用するためのコードを自動作成するツールです。SWIG用のインタフェースファイルを作成するだけで、各言語用のラッパーを自動生成してくれるという優れものです。 公式サイト http://www.swig.org/ 日語サイト http://swig-jp.dyndns.org/ マニュアルの日語訳 http://swig.shibu.jp/d

    Enjoy×Study - JavaでJNI(SWIGっていい!)
    sadah
    sadah 2008/03/31
    JNIのラッパーを作ってくれるらしい
  • 1