こんにちは､ そしてようこそ｡
このデモでは､ sizeof演算子を使って､ あるデータ型に対するメモリの大きさを教えてくれる､
ちょっとしたプログラムの解答を提供したいと思います｡
コードブロックを表示させ､
ここでは非常に馴染みのある手順でプロジェクトを作成しましょう｡
そして､ 意味のある名前をつけてもらう｡
このプロジェクトをsizeofexampleと呼ぶことにします｡
だからsizeofexample｡
これは､ 本当に簡単なことなんです｡ 特定のデータ型を表示するためにprintoutステートメントを使うだけです｡
だから､ 変数も作らないことにしているんだ｡ データをプリントアウトしてみる
そこで､ ここではchar型の変数がパーセントを占めるとします｡
そして､ 私はあるumデータ型を使おうとしていました｡
zfだったと思いますが､
zdを使ってみてください｡ これは素晴らしい書式指定子で､
C99で追加されたと思う｡
Zdで､ あとはsizeofを使うだけです｡
Sizeofとgetは関数のように見えますが､ そうではありません｡ そして､ キャラクターにはキャラクターと言ってください｡
そして､ 似たようなことをするので､
これをコピーして貼り付けるだけです｡
シャアはやらないけど､ 2枚目のショートはやるつもりです｡
intとlong､ long long､ double､ あるいはfloat､
float double､ long doubleをやってみようか｡
そして､ あとはsizeofパラメータを変更して対応する型を取るだけです｡
これもメモリとポインタの話をするときに使うことになる｡
しかし､ これは異なるデータ型を理解するのに役立つだけです｡
そして､ 実際に空間の長い長いsizeofで渡すことができることがわかるでしょう｡
関数のパラメータにスペースが使えないから関数じゃないんでしょう｡
しかし､ sizeofは変数や式など､ あらゆるものを受け取ることができることを忘れないでください｡
そして､ その際､ コンパイル時にlong doubleで決定するのではなく､
実際には実行時にsizeofを決定しています｡
それを保存して､ ビルドする｡
エラーはありません｡
z形式を理解していないようです｡
intでない可能性があるからです｡ そこで､ 代わりにこれらを符号なしでのパーセント使用に変更しましょう｡
よし､ じゃあ作ろう｡
さて､ これで警告は出なくなりました｡ 通常､ 私がビルドするときは､ 警告も出さないようにします｡
コンパイラの警告は､ 警告と書いてある通りです｡
そのため､
コンパイルは成功しますが､ 警告は通常､ 問題を示しています｡
だから､ 警告をきれいにしたいのですね｡ それで､ フォーマット指定子が許可されていないパーセントzという警告が出たんだ｡
というメッセージが表示されるので､ それを変更したところ､ 警告が表示されなくなりました｡
警告が警告である理由は､ 問題を引き起こす可能性があるからで､ できるだけきれいにするようにしましょう｡
それから､ ひとつ忘れていたのですが､ 改行用のエスケープ文字を追加していなかったので､
書式がおかしくなっていることに今気づきました｡
だから､ とても読みにくくなるんです｡ そこで､ パーセントuの後にバックスラッシュnを追加してみましょう｡
つまり､ 今はchar型の変数が1つ占有していると言うことです｡
変数名：short occupy 2 bytes, int
4 bytes, long 4 bytes, long long 8 bytes, float
4 bytes, double 8 bytes, long double 12.
かなりキレイになりましたね｡ これをいろいろなプラットフォームで走らせると､ それらが変化していくのがわかると思います｡
このように､ 簡単に書けるプログラムでありながら､ きちんとしたコンセプトを示しているのです｡
だから､ 先に進んで､ これをダウンロードすることができます｡
もし問題があれば､ 別のプラットフォームで実行してみてください｡ しかし､
私が示したかったのは､ データ型のサイズの違いを少し示しただけですので､
次のセクションに進んでください｡ ありがとうございます｡