ページへ戻る

− Links

 印刷 

hideyosi​/hijk計画 のバックアップ差分(No.4) :: OSASK計画

osaskwiki:hideyosi/hijk計画 のバックアップ差分(No.4)

« Prev[4]  Next »[5]
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を一個増やす・・・いや違うなぁ
« Prev[4]  Next »[5]