如何创建符号表?

时间:2009-11-16 13:50:39

标签: c symbol-tables

我可以使用malloc添加符号表条目吗?如何遍历表格以检查是否已存在某些内容?

3 个答案:

答案 0 :(得分:5)

“符号表”没有描述特定类型的数据结构。它仅描述了主要的操作模式:添加符号并按名称检索符号。这里的符号基本上是属性名称。对于编译器类,一个这样的属性可以是IsAFunction

C内置的数据结构非常少。在这种情况下,你必须自己创建一个。在C ++中,它只是std::map<std::string, Attributes>的问题。现在假设您在编译器类中,您应该已经知道如何在C中实现数据结构(包括使用malloc())。如果没有,那么编译器类真的不适合你。

答案 1 :(得分:2)

通常,符号表是通过hash tables实现的。散列表具有O(1)存储和检索的优点,但它们不会按顺序存储数据。

假设你在C中工作,你可以使用malloc(),但它需要更多的工作。提供的链接应该启发你。

答案 2 :(得分:0)

我以前用双链链接列表完成了。但是现在我肯定会用哈希表来做这件事。 它只是一个数据结构。