3: 2010-01-31 (日) 17:44:02 lina[6] [7] | 4: 2010-02-01 (月) 07:46:19 lina[6] [8] | ||
---|---|---|---|
Line 41: | Line 41: | ||
ここかなぁ・・・ 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を一個増やす・・・いや違うなぁ |
(This host) = http://osask.net