巨集處理器或編譯器的符號表管理主要**,採用的結構是乙個hash表,hash表的每一項是乙個鍊錶。**:例如#define in 1,在程式編譯的時候,需要把名字in和替換文字1存入到某個表中。此後,當名字in出現在某些語句中時,如int state=in,就必須要用1來替換in。
選擇雜湊表,檢索速度快(o(1)+o(n))
#include #include#include
#define hashsize 101
//巨集處理器或編譯器的符號表管理主要**
struct
nlist
;static
struct nlist*hashtab[hashsize];
//把s複製到堆記憶體中
char* my_strdup(char*s)
returnp;}
//取得hashval(下標),乙個字串s對應乙個hash表中的下標
unsigned int hash(char*s)
return hashval%hashsize;
} //
根據s,找到hashval,再根據它找到在雜湊表中對應乙個鍊錶(因為其它字串也可能和s有一樣的hashval),然後遍歷鍊錶,看看有沒有和s相等的字串
struct nlist* lookup(char*s)
return
null;}//
將name和defn新增到雜湊表中
struct nlist* install(char* name,char*defn)
else
if((np->defn=my_strdup(defn))==null)
return
null;
return
np;}
intmain()
}}
乙個網域名稱查詢的程式
主要用了兩個字串函式implode 和explode 我製作的網域名稱查詢的源 主要用了兩個字串函式implode 和explode,利用這兩個函式的切割字串的強大功能,可以查詢.com,net.org.cc.tv下的網域名稱whois。echo if isset string echo echo ...
mysql 例項(乙個表) 查詢
以下的查詢語句中存在著多表,包含主外來鍵 這裡並未顯示 理解為主 1查詢表中所有記錄的列1,列2 列3 select 列1 列2,列3 from 表 2查詢表的所有記錄 select distinct 列1 from 表 3 查詢表 的所有記錄 select count from 表 4 查詢表中數...
mysql查詢乙個表的資料插入另乙個表
1.如果2張表的字段一致,並且希望插入全部資料,可以用這種方法 insert into 目標表 select from 表 例如 insert into t a select from t b 2.如果只希望匯入指定字段,可以用這種方法 insert into 目標表 欄位1,欄位2,select ...