2007-08-12から1日間の記事一覧

値の変更が出来る文字列についての格闘期。

GCC

ちょっとはまって調べてみたら、もっとはまってしまった・・・。値の変更が出来る文字列についての格闘記。 値の変更について func(char *s) { *s = 'a' } func("moge"); というアホなプログラムを書いてしまった・・・値が変更が出来る訳が無い!!なんとなく…

1から10まで表示メモ。

seq便利なんっすけどぉぉぉ。 % seq 10 1 2 3 4 5 6 7 8 9 10横に並べるときは、zsh。 % echo {1..10} 1 2 3 4 5 6 7 8 9 10プログラムのテストに最適デス。1から10まで表示して、ランダムに並べ替えて、元に戻す。 % seq 10 | random | sort -n 1 2 3 4 5 6…

K&Rを読もう(28) 問題2-5 文字のマッチング

GCC

2-4より先に2-5をやる。文字列のマッチングをして、一致する文字の位置を返す問題。mixi時代にkusakabeさんに激しく突っ込まれたのでよく覚えてる。 #include <stdio.h> #include <stdlib.h> int any(char *s, char *match) { int i = 0; char *sp; char *mp; for (;*s != '\0';</stdlib.h></stdio.h>…

glibcのソースを入手してみた。

GCC

K&Rを読んでるとライブラリの再実装を行っているものが多い。しかし、K&Rでは初歩の初歩の実装を扱っているだけで全く足りないので、本物のソースを入手することにした。GNU C Library - GNU Project - Free Software Foundation (FSF)20MB。フロッピーディ…

C言語の文字列宣言を理解する

GCC

前回のエントリで、C言語の文字列宣言によって参照するポインタの位置に違いがある事がわかった。では、バイナリレベルでGCCがどのように解釈を行っているのかを理解したいと思う。 #include <stdio.h> void hello1(void) { char *s = "Hello, C String World !! Hell</stdio.h>…