列挙型
VBAの列挙型は自動的に"整数"データ型に代入され、それ自身データ型にもなりうる。
C言語のオリジナルのK&Rに列挙型は存在しなかったが、ANSI標準 (C89) で追加された。Cでは、列挙は明示的にenumキーワードを宣言することで生成できる。それは構造体と共用体宣言を連想させる。
Cは列挙値の"小さな整数"表現を直接プログラマに公開する。整数と列挙値は自由に変換可能であり、列挙値でも全ての数値演算が可能となっている。結果として、列挙体に定義されていない値すら取りえることもある。事実、言語仕様によると、上記のコードはint型の定数としてCLUBS、DIAMONDS、HEARTS、SPADESを定義しているが、これらがその型の変数に保存されるときは、(暗黙裡に)enum cardsuitに変換されるだけである。
typedefによりエイリアスを定義することも可能である。
Cでは、プログラマが明示的に列挙定数の値を指定することも可能である。例えば、
は、スートの数学的な集合をビット演算によってenum cardsuitとして表現することを可能にする型を定義する目的で使える。
型名を持たない無名の列挙体を定義することも可能である。
Pascalでは、列挙型は括弧で括られたリストで値を暗黙のうちに宣言できる。
宣言は、それが多重変数として使われるように型別名宣言によく現れる。
列挙値の順序は書いた順番になる。列挙型は順序型 ordinal type であり、Pred、Succ関数は、列挙の前または次の値を与え、 Ordは列挙値を整数表現に変換する。しかし、標準Pascalでは数値型から列挙型への変換はできない。拡張Pascalは拡張されたSucc関数経由でこの機能性を提供する。他のPascal派生言語の一部では、型キャストで変換可能なものもある。