C言語入門(22) intとかfloatとか実情のデータ型に合わない!!

Posted: 2013年01月10日

実際にbyteデータを扱いたいのに適切なデータ型が見つからない
前の話題にでも出ましたが構造体や共用帯を手軽に記述したい
などの場合typedefを用いることで実現ができます。
typedefでは名前の通り型を定義することができます。

typedef 意味 名前;

で定義します。

具体的には、

 // データ型
 typedef unsigned char byte;

 // 構造体
 typedef struct {
  int n1;
  int n2;
 } SNumber12;

 // クラス
 typedef ATL::StringT_Exported<char, StrTraitMFC> CStringA;

 // 関数
 typedef int (*QSort_Compare_Func)(const void*, const void*);

関数は特殊ですが
ほかは、だいたい同様の書き方です。

上から説明しますと
データ型は、unsinged charをbyteと定義しています。
構造体は、 n1,n2を含む構造体をSNumber12と定義しています。
クラスでは、ATL::CStringT(char用)をCStringAと定義しています。
関数では、返却値 int 引数 (const void*, const void*)の関数をQSort_Compare_Funcと定義しています。

関数は、関数ポインターを受け取る際に便利です。

解説練習:

  1. time_tは実際どのかたなのか定義を見て確認してください。
  2. HRESULTは実際どのかたなのか定義を見て確認してください。
カテゴリー: プログラム, 入門 | タグ: , | コメント無し »

コメント