3: 2010-01-31 (日) 17:44:02 lina |
4: 2010-02-01 (月) 07:46:19 lina |
| | | |
| ここかなぁ・・・ func06_init(); | | ここかなぁ・・・ func06_init(); |
| + | |
| + | void func06_init() |
| + | { |
| + | UCHAR *p; |
| + | func06str = malloc(sizeof (struct FUNC06STR)); |
| + | func06str->flags &= 0; |
| + | func06str->usgs = 2; |
| + | func06str->def_arg0 = 1; |
| + | func06str->usg[0].tag[0] = '\0'; |
| + | func06str->usg[0].flg = 0; |
| + | func06str->usg[0].usg[0] = '\0'; |
| + | func06str->usg[0].typ = 0xff; |
| + | func06str->usg[1].tag[0] = '\0'; |
| + | func06str->usg[1].flg = 3; |
| + | func06str->usg[1].usg[0] = '\0'; |
| + | func06str->usg[1].typ = 0xfe; /* 3:str */ |
| + | for (func06str->argv0 = p = *main_argv; *p != '\0'; p++) { |
| + | if (*p == '\\' || *p == '/') |
| + | func06str->argv0 = p + 1; |
| + | } |
| + | return; |
| + | } |
| + | |
| + | うーん。この関数って、内部にコマンドライン情報を格納するための構造体を定義して、さらに初期化してる・・・のかなぁ??? |
| + | |
| + | 102行目がそれかな。ここでFUNC06STR構造体を定義。さらに108行でそれをグローバル変数として生成・・・かなこれ?~ |
| + | COLOR(blue){おっと!FUNC06STR内に、さらにFUNC06STR_SUB00構造体が入ってる。入れ子になってるのか} |
| + | |
| + | ***FUNC06STR構造体 [#u5ca8f2e] |
| + | |
| + | |0 |usg|tag(32文字?)|usg(32文字?)|def(32文字)|typ(1文字)|flg(1文字)|dmy_c(2文字)|def_int(int×1)|dmy_i(int×6)| |
| + | |1 |usg|tag(32文字?)|usg(32文字?)|def(32文字)|typ(1文字)|flg(1文字)|dmy_c(2文字)|def_int(int×1)|dmy_i(int×6)| |
| + | |2 |usg|tag(32文字?)|usg(32文字?)|def(32文字)|typ(1文字)|flg(1文字)|dmy_c(2文字)|def_int(int×1)|dmy_i(int×6)| |
| + | |>|>|>|>|>|>|>|>|>|CENTER: ・ | |
| + | |62|usg|tag(32文字?)|usg(32文字?)|def(32文字)|typ(1文字)|flg(1文字)|dmy_c(2文字)|def_int(int×1)|dmy_i(int×6)| |
| + | |63|usg|tag(32文字?)|usg(32文字?)|def(32文字)|typ(1文字)|flg(1文字)|dmy_c(2文字)|def_int(int×1)|dmy_i(int×6)| |
| + | |>|>|>|>|>|>|>|>|>|LEFT:def_arg0(int×1)| |
| + | |>|>|>|>|>|>|>|>|>|LEFT:flags(int×1)| |
| + | |>|>|>|>|>|>|>|>|>|LEFT:usgs(int×1)| |
| + | |>|>|>|>|>|>|>|>|>|LEFT:*argv0(ポインタ)| |
| + | |>|>|>|>|>|>|>|>|>|LEFT:argv_f(256文字)| |
| + | |>|>|>|>|>|>|>|>|>|LEFT:argv_all(6万5千文字)| |
| + | |
| + | -func06_initはなにをやってるのか?(ヘタレの予測) |
| + | --メモリをmallocを使って確保(全部でいくつになるんだこれ?掛け算ややこしいのでパスwww |
| + | --flagsをゼロに(なんで?) |
| + | --usgsを2に(とりあえず、引数は二個だよってことで初期化かな) |
| + | --def_arg0を1に(なんだろこれ。defっていうくらいだから、省略時の規定値・・・かな?) |
| + | --以降、とりあえず2列、usg(FUNC06STR_SUB00構造体)に値を当て込んでいる |
| + | ---tag[0]に0を。(tagは文字列なので、頭に0を入れて空文字ってことにする?) |
| + | ---flgを0に。(なんだろう。flgかぁ。なにを表すものかな?) |
| + | ---usg[0]に0を。(同じく空文字化だと思う) |
| + | ---typを0xffに(0xffはなんだろう?0xfeは文字列引数ってことらしいが・・・) |
| + | --次にforループはなにしてるんだろう? *main_argvって、たぶん与えられた引数(コマンドライン)丸々を格納している変数のポインタだと思うんだけど・・・文字列内に / か \ があったらargv0を一個増やす・・・いや違うなぁ |