トップ «前の日記(2007-06-18) 最新 次の日記(2007-06-26)» 編集

十日日記


2007-06-21

Link 素人から初心者へ

1年前の自分のコードを読んで、汚さに愕然とすることがある。その程度には上達したのだろう。素人から初心者になったところか。

最近は仕組みに関心が向くようになった。たとえばVisual Basic(VB6)にはString型があるけれど、どのように実装されているのか、とか。私は最初、String型は一定の長さの配列が取ってあって、長さが足りなくなるたびに倍々に伸ばしていくのだと想像していた。ところが次のコードを実行すると違うことがわかる。

Dim s As String
Dim i As Integer

For i = 0 To 3
    Debug.Print s, StrPtr(s)
    s = s & "f"
Next i

この結果は、次のようなものだった。

               0
f              64036444
ff             2411948
fff            2411988

文字列を連結するたびにメモリが確保されなおしている。調べたあげく、VBのString型はBSTR型と呼ばれることがわかった。高速化のためMid関数による置換が推奨されているのも、これで頷ける。

Tags: 言語
[]


プロフィール

渡辺 慎太郎(na@10days.org)

分野別表示

Admin | Client | Dev | Excel | Linux | PC | PDA | Web | iPad | web | 家電 | 文具 | | 英語 | 言語 | | 音楽

月別表示

1999|07|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|

最近の記事

雨量情報 dictionary.com Yahoo google Yahoo! 路線情報 東京アメッシュ l-mura l-aka l-momo 目次 r-mura r-aka r-daidai r-kiiro asahi.com nogulabo r-sora r-midori r-midori r-momo