X Window研究笔记(21)转载时请注明出处和作者联系方式作者联系方式:李先静 21.X Window 字符串与AtomAtom是X Window中的一大特色,不把它弄清楚,可能会对阅读其它代码形成障碍。X Window把常用的字串用一个hash表来管理,并给这些字符串赋与一个ID,客户端通过ID引用字符串,避免在客户端和服务器端之间来回传递这些它们,这样可以大大提高传输效率。另外Atom是一个整数,对整数的比较也比对字符串的比较有更快的速度。管理Atom的主要函数有:AtomMakeAtom(string, len, makeit) char *string; unsigned len;Bool makeit;char * NameForAtom(atom) Atom atom;...{ NodePtr node; if (atom > lastAtom) return 0; if ((node = nodeTable[atom]) == (NodePtr)NULL) return 0; return node->string; } void FreeAtom(NodePtr patom)...{ if(patom->left) FreeAtom(patom->left); if(patom->right) FreeAtom(patom->right); if (patom->a > XA_LAST_PREDEFINED) xfree(patom->string); xfree(patom);}(待续)