構造体について

typedef

typedefは、すでにあるデータ型に新しい名前を付けることができます。

  typedef unsigned int UINT;

「unsigned int」(符号なしint型)は、間にスペースがあるため、プログラム上にあると見難くなってしまいます。そこで、「unsigned int」に新しい「UINT」という名前を割り付けました。すると、「unsigned int cnt;」と宣言していたものが、「UINT cnt;」と宣言すつことが出来るのです。型変換の場合にも利用できるため、見ただけで意味が分かるような名前を付けることにより、プログラム自体を読みやすくすることができます。ただし、便利だからといって多用しすぎると、暗号だらけのプログラムのようになってしまい、余計に見難くなってしまいます。よく使う型などを統一するために使用するとよいでしょう。

よく使用されるのが、ポインタを示す「*」が乗算の演算子と同じであるため見難いことを防ぐことで使われます。

  typedef char *StringPtr;

このようにすれば、「*」を使わずに記述することが可能であるため、企業による大規模な開発などでは、共通のヘッダファイルを作成し、使用する変数やそれに伴うポインタを定義している場合があります。「Ptr」と決まった用語を使用することによりポインタであることはわかりますし、用途に応じて規則性を持った命名規則を決めておきことにより、見やすいC言語プログラミングが出来るでしょう。特に決まりがあるわけではありませんが、typedefで付ける新しい名前には、はじめの文字や全ての文字に大文字の英字が使用されることが多いです。そのことにより単語の重複がなくなり、検索などもしやすくなります。