2007-07-29から1日間の記事一覧
今日から2章に入ります。2章からは本格的に文法を扱っていくようです。文法ってとにかく面倒で大嫌いなんですが、C言語の文法をしっかり学んだ事が無いので飛ばさず学んでいきたいと思います。これからお世話になりそうだからな・・・。 変数名 「内部名では…
ハマったのでメモ。bash&zshでシングルクォートのエスケープをする場合はちょっとしたテクニックが必要らしい。 ダメダメ例 ダメダメなエスケープ。 % echo 'tanaka\'s OS' quote>残念ながら'tanaka\'で終わってしまう。 回避する。 エスケープするにはちょ…
sgrep凄すぎ。 Sgrep - Home page ダウンロード。 メモ帳 - sgrep sgrepの使い方 C言語のコメント抽出 C言語のコメントを抽出してみよう。 % sgrep '"/*" .. "*/"' ex-1-23.c /***************************************** * * ex-1-23.c * *****************…
さて、最終段階に入ります。更なる抽象化を進めるためには高階関数を使うしかない!!1章の最後なので気合いを入れて挑みます。 #include <stdio.h> #include <stdlib.h> typedef struct { char *stack; int index; } Stack; void err_exit(const char s[]) { fprintf(stderr, s)</stdlib.h></stdio.h>…
やはり気になるので修正を加えた。引用符'\\'の処理でかなりハマった。 #include <stdio.h> #include <stdlib.h> void next(int *cp, int *np) { *cp = *np; *np = getchar(); } void quote(char q, int *cp, int *np) { while (*cp != EOF) { next(cp, np); if (*cp == '\\') {</stdlib.h></stdio.h>…
相当自信無し。 #include <stdio.h> #include <stdlib.h> #define MAX_BUFFER 1024 enum {OUT, COMMENT_IN, SQ_IN, DQ_IN}; void err_exit(void) { fprintf(stderr, "釣合が取れてません。\n"); exit(EXIT_FAILURE); } int main(void) { int c,d,next; int i = 0; int status = </stdlib.h></stdio.h>…