[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6 式の型に名前を与える

初期化式の形式の typedef 宣言を使うことで、ある式の型に 名前を付けることができる。以下に、exp の型に name という 型名を定義する例を示す。

 
typedef name = exp;

これは、式文と共に使うと有効である。 以下に、式文と共に使っている、どの算術型にでも適用できる、安全な 最大値マクロの定義例を示す。

 
#define max(a,b) \
  ({typedef _ta = (a), _tb = (b);  \
    _ta _a = (a); _tb _b = (b);     \
    _a > _b ? _a : _b; })

ローカル変数名をアンダースコアで始まる名前にするのは、ab が置き換えられた式内で発生する変数名の衝突を避けるためである。 将来的には、新しい宣言構文の形式を考えて、変数を宣言するのに、 そのスコープが、その変数に対する初期化子以降にのみ開始するようにしたい と考えている。これは、衝突を避けるのにより信頼性の高い方法となるだろう。


This document was generated using texi2html 1.78.