タグ

cに関するLayzieのブックマーク (7)

  • Big Sky :: 最近の mruby 業界まとめ

    トピックス mrbgems が入った お前はどこのワカメじゃ ビルド方法が変わった mruby-uv mruby-http mruby-sinatic mruby-json mruby-sqlite3 mruby-curl そして mruby-v8 mrbgems が入った mruby に GEM っぽい物が入った。 とは言ってもスタティックリンクなのでダイナミックローディングしてくれる訳じゃない。 しかしながらパッケージを導入する上での取り決めが決まりつつあると言った感じ。 使うには MRUBY_ROOT という環境変数を mruby のリポジトリトップに設定しておき、MAKEFILE_4_GEM を $MRUBY/mrbgems/Makefiel4gem にしておくと良い。後者は要らなくなったかもしれない。 具体的には $MRUBY_ROOT/mrbgems/GEMS.active と

    Big Sky :: 最近の mruby 業界まとめ
    Layzie
    Layzie 2012/12/21
    "お前はどこのワカメじゃ"
  • Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール

    最近、Robert Love先生のを暇な時にダラーと読んでいたりするわけですが、それの中にLinux Kernel内部で使われているLinked Listの実装が書いてあって面白かったので共有。 まず、Linked Listの一個一個のエントリを表すstructを定義します。 struct list_head { struct list_head *next, *prev; }; いやいやいやいや。いかにC力の低い僕でも流石にこれはあきません。騙されませんよ。前後のエントリへのポインタは確かにあるけれども、これにはデータを指すためのポインタがないじゃないの。おじいちゃんまたデータ忘れてきちゃったの?いやあねえ。 おじいちゃんは言った。「それはお前の短見というものじゃ。このLinked Listは以下のコードのようにデータ構造に埋め込んで使うものなんじゃよ。」そしてそれは正しかった。 st

    Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール
    Layzie
    Layzie 2012/12/13
    おじいちゃん何者…
  • C 言語にポインタがある理由は省メモリ化・高速化・開発作業の省力化です - 偏見プログラマの語り!

    前回の記事『プログラム初心者にC言語のポインタを不意ながら教える羽目になったなら、こう教えると良いよ』でポインタの教え方を書きました。ソレに対して「そもそもどうしてポインタっていう仕組みがあるの?」という質問をもらったので、つらつらと書こうと思います。稿は「ポインタがある理由の教え方」ではなく「ポインタがある理由」です。分かっている人には相当に退屈な文章ですのでそういう人は読まずにお帰りください。 で、えーと、結論だけ先に言うと省メモリ化のため、次に速度アップのため、そして生産性アップのためです。 1. メモリは有限である。 マシンに搭載されているメモリには限りがあります。メモリ空間は広大ですが、無限ではないのです。 好き放題にどんどんメモリを使ってデータを格納するわけにはいかないというわけです。しかしプログラムは計算のためにメモリ空間を占有します。仮に↓こんな感じに、わずかな有限メモ

  • typo in node_http_parser · nodejs/node-v0.x-archive@c9a231d

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    typo in node_http_parser · nodejs/node-v0.x-archive@c9a231d
  • 「値渡しか参照渡しか」という二分論は混乱の元 - 西尾泰和のはてなダイアリー

    先日のプログラミングシンポジウムでは「今の時代となってはむしろ有害な教育って何だろう」という話題が出た。その時には思いつかなかったけども、今日「Pythonはすべてが参照だっていうけど、boolとか参照渡しじゃないよね」という趣旨の発言を見て思いついた。 「Pythonではすべてが参照」ってのは「Pythonの変数はCで言うと全部PyObject*」って言ってるだけのことなので、関数呼び出しが参照渡しかどうかとは独立な話。そしてPythonの関数呼び出しは値渡しです。渡される値がポインタなのでたぐれるだけ。 参照渡しと値渡しの2通りに分類できるかのような教え方をする教科書は現代ではむしろ有害なんじゃないの。今一番メジャーな渡し方は「参照の値渡し」なんだし。古い用語を使い続けることで混乱が増すだけのような。 そうつぶやいていたら@kuenishiから 今思えばあり得ない教育Javaで値渡

    「値渡しか参照渡しか」という二分論は混乱の元 - 西尾泰和のはてなダイアリー
  • C Pointers Fundamentals Explained with Examples – Part I

  • Cでのポインタの読み方

    Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日語で読む方が大変です。 基ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i

  • 1