こんにちは｡ このオペレーター編では､ もう1つ課題を用意したいと思います｡
主にsizeof演算子の使い方を紹介したいと思います｡
では､ まず要件を説明しましょう｡
この課題では､ cでサポートされている基本的なデータ型のバイトサイズを表示するcプログラムを作成してほしい｡
このチャレンジがクールなのは､ 私が何度も言っていることですが､ おそらく皆さんの頭の中に残っていないのでしょう､
実行している実際のシステムによっては､ オペレーティングシステムやハードウェアのアーキテクチャが違っても､ さまざまなデータ型に対して異なるメモリサイズを持つことがあるからです｡
Intは4､ intは8の可能性があります｡
ダブルスは8か16か､ あるいはそれ以上かもしれません｡
そして､ それを理解することはとても重要です｡
また､ 数字をハードコーディングし始めると､ プログラムに支障をきたすことになります｡
そこで､ sizeof演算子を使いたいわけです｡
これで､ プログラムが特定のシステムで動作していても､ 必ずしも心配する必要はありません｡
そこで､ この課題では､ sizeofを使わざるを得ないことを実証しています｡
ポインタの話をするときには､ sizeof 演算子をもっとたくさん使うことになりますが､
今回は､ この演算子を使って少し手を汚して､ この演算子に関連するいくつかの書式指定子にも慣れてもらいます｡
ですから､ 繰り返しになりますが､ お使いのシステムによっては､ このプログラムの出力は異なるかもしれません｡
しかし､ あなたはいくつかの基本的なデータ型のサイズを表示するプログラムを書くことです｡
とても簡単で､ そんなに時間はかからないはずです｡
しかし､ 今回やってもらいたいのは､ printf関数を使って､ 次の型のバイトサイズを表示することです｡
Int､ char､ long､ long long､ double､ long double｡
そして､ このプログラムの有用性は､ 複数の実機で動かして違いを確認することでしょう｡
でも､
このデータをプリントアウトするときは､ C99でサポートされているパーセントzd形式を使えばいいので､ 問題ないでしょう｡
しかし､ このフォーマット指定子を使えば､ 各サイズをフォーマットし､ 正しく印刷することができます｡
その他､ この関数やプログラムは､ 単にsizeof演算子を使って､
データ型によってメモリ上のサイズが異なることを示すだけです｡
この場合も､ 複数のコンピュータでテストして違いを確認することがポイントになりますが､ このプログラムにはそれほど時間はかからないはずです｡
賢い人は実際に変数を作る必要もない｡ printf文そのものを使えばいいし､
これはsizeof演算子に関する知識を深めるためと見ていいでしょう｡
このほかにも､ 演算子を使ってさまざまな型を変換するチャレンジもぜひやってください｡
いろいろな変換があり得る｡
華氏から摂氏への変換を紹介しましたが､
どんな種類のデータセットでも変換できますし､
数学の本でいろいろな方程式を調べて､ プログラムを書いてみるのもいいでしょう｡
でも､ これで頑張ってください｡ 繰り返しになりますが､ 時間はかからないはずです｡
次の講義で簡単な解決策を提供し､ これを行う方法を示しますが､ かなり簡単で､
sizeof演算子を使うだけです｡ ありがとうございます｡