prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 2.21

有没有一种自动方法来跟踪联合体中哪个字段正在被使用?


没有。你可以自己实现一个显式“标记”的联合体。

struct taggedunion {
	enum {UNKNOWN, INT, LONG, DOUBLE, POINTER} code;
	union {
		int i;
		long l;
		double d;
		void *p;
	} u;
};
你必须确保代码字段在写入联合体时始终被正确设置;编译器不会自动为你做任何事情。(C 联合体不像 Pascal 的变体记录。)

参考文献:H&S 第 5.7.3 节,第 143 页


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管