Cの配列アクセス豆知識

この本を最近読んでます。

C言語ポインタ完全制覇 (標準プログラマーズライブラリ)

C言語ポインタ完全制覇 (標準プログラマーズライブラリ)

この中で、


array[1]

と、


1[array]

が全く同じだということを知って衝撃を受けた。

これは結局のところ、


array[1]


*(array + 1)

のシンタックスシュガーであるからなんですね。

デーモン君のソース探検 その2

ソースコード中に、


int
tcsetattr(fd, opt, t)
int fd, opt;
const struct termios *t;
{

}

のような書き方が頻繁に出てきて、関数名のあとの変数宣言は一体なんなのかと思って調べてみると、このページに書いてあった。

古いC言語では関数の仮引数の型をこうやって指定してたのね。

勉強になった。

デーモン君のソース探検 その1

買ってみた。

VMWare上のUbuntuで進めていきます。

まずはNetBSDのソースコードを取得します。がしかし、cvs loginができずに書いてあるとおりには進めないので、普通にFTPでNetBSDのソースコードを取得してきた。

取ってきたバージョンは5.1で、本は1.6を使っているけど基本的なコマンドのソースは同じだろうという判断で進めていきます。

ちなみにlocateコマンドのデータベース作成ですが、


# sh /etc/weekly

はUbuntuでは無いようなので、


# sudo updatedb

でデータベースをアップデートできます。