2004年11月17日更新

Cコンパイラ

配列の初期化

C99のように、指示付きの初期化が使えます。 ただし、C99とは書き方が微妙に異なるので注意。

char *array[] = {
	['<']	"&lt;",
	['>']	"&gt;",
	['&']	"&amp;",
	['"']	"&quot;",
};

この場合、初期化していない添字の値は未定義。 ただし、宣言を以下のようにすれば、 明示的に初期化しない値は0。

char *array[1<<8] = {
	...
};

構造体の初期化

構造体も、配列と同様に指示付きの初期化が使えます。

typedef struct Node Node;
struct Node {
	int type;
	Node *left;
	Node *right;
}

Node構造体のうち、typeだけ初期化する場合は以下のように。

Node n = {
	.type = 0,
}