c

自殺関数

c

どうでもいいことかもだけど、 クロージャーがサポートされている言語でこれが出来るのはそれほど驚かない。が、Cでも出来てしまう。久しぶりにCodePadのお世話に。 これは間違い。単に *point = NULL; がコード領域なので書き込み違反になっているだけ。実…

readdir()のd_reclen

readdir()が返すdirentの d_reclenフィールドなんだけど、ナんのサイズなんだろうとか、今まで気にもしていなかったんだけど気になりだすと気になって仕方ない。 _example.so:: inode: 2007169, offset: 2147483647, len: 24, type: regula example.c:: inod…

set nu

vim c

vimのnumberモードはファイルチェックなんかするときに結構便利。けど、たとえば仕事で長大なるテストパターンなんかをチェックするときなんかに : : 1384 cmp_memdata32(32'h40800500 , 32'h78787878 ); 1385 cmp_memdata32(32'h40800504 , 32'h78787878 );…

にもっくん?

何をとちくるったのか、amazonのリコメンドエンジンが薦めてきたので、買ってしまった。ゲームプログラマになる前に覚えておきたい技術作者: 平山尚出版社/メーカー: 秀和システム発売日: 2008/11/14メディア: 単行本購入: 112人 クリック: 3,473回この商品…

トークン連結子

c

マクロ展開を極めるような事はした事が無かったので、この辺りはちゃんとした知識は持っていなかったんだけど、なんか #を付けると文字列に展開されて ##だとトークンのまま連結して、、、とか位は覚えてた。で、構造体のメンバーを調査するのに、 #define P…

Electric Fence

C

他人が書いたメモリ管理が酷過ぎるCプログラムを解析していて神経衰弱になる。コードを読んだり、デバッガで単純に追っかけるだけだと、中々わからない。一貫性の無い酷すぎるプログラムに嫌気が差してきて、ふと Electric Fenceのこと思い出して楽しようと…

範囲条件の表記

c

以前はたとえば「x の値が a から b の範囲なら」とかいう表記をCでするとき、 #define _(x) (x) && (x) とか言うのを定義しておいて if (a < _(x) < b) { : } とか書いてたんだけど、知り合いの一人にdisられて以降、深く考えずに使わなくなっていた。実際…

ハッシュを考える2

sodasoda 2008/04/03 10:42 > OO脳が抜け切らない自分では第一引数に構造体へのポインタselfを取る似非Pythonみたいな形をC言語で記述してしまいそうだ・・・いまどきCでも普通そうすると思います。 というか、いにしえ (30年も昔の設計) の stdio でさえ (s…

ポインタと配列

c

c - *sとs[]の違い - 404 Blog Not Found [c]「 *s 」と「 s[]」の違い - IT戦記やっぱりここがCの第一関門なのかな。なんだかポインタ合戦に弾さんまで参戦してる(?)みたいだけど。。。 結局配列の後ろ以外の文字列って文字列「定数」なので ポイ…

ハッシュを考える

相変わらず id:amachangはエネルギッシュだ。 駄文 - C 言語の勉強 - IT戦記 僕もやってみよう!・・・と思って書き始めてみたら。。。ハッシュ関数ってどうかくんだろう? #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #include "hash_table.h" #define TABLE_</stdbool.h></string.h></stdlib.h></stdio.h>…