エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Part 9.メモリレイアウト(2) - やねうらおブログ(移転しました)
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Part 9.メモリレイアウト(2) - やねうらおブログ(移転しました)
いま、文字列長を表現するfieldを追加したとしよう。 class UCS2String { typedef ushort UCS2; ushort ... いま、文字列長を表現するfieldを追加したとしよう。 class UCS2String { typedef ushort UCS2; ushort Length; UCS2 moji[32]; } この文字列をクリアするにはどうすれば良いだろうか? moji[32]すべてをzero fillする必要はない。単にLength に 0 を代入するだけで良い。なぜか?このクラスを書いたプログラマは、「文字列の長さは必ずLengthに反映している」とそう自分でルールを作り、そしてそう信じて、それに従うからだ。 もちろん、Lengthの代わりにmoji[32]の先頭であるmoji[0]に文字列長を格納してしまう場合もあるだろう。Pascal風stringのできあがりだ。 プログラマがそうなっているのだと信じればその瞬間からそれは確かに真実なのだ。そして自分で作ったルールをどこにも記する必要もない。