rem: register SLNode p,q;
add: register SLNode p,q = 0;
context: void *SearchSL(SkipList l, void *key){  register int k;  register SLNode p,q;  int (*compare)() = l->compare;  p = l->header;    for(k=l->level-1; k >= 0; k--)   {     while((q = p->forward[k]) && (*compare)(q->key, key) < 0)    p = q;   }  if (q == NULL || (*compare)(q->key, key) != 0)    return NULL;  return q->key;}