MyObject  *pObj;                      // pointer to an object
LinkedList list;                      // linked list handle

list = LL_new();                      // create new linked list

LL_push(list, NewObject("Foo", 3));   // push a new object onto the list
LL_push(list, NewObject("Bar", 2));   // push a new object onto the list
LL_push(list, NewObject("Cat", 7));   // push a new object onto the list

LL_sort(list, CompareObjects);        // sort the list

printf("The list has %d elements\n",  // print the list's size
       LL_size(list));

LL_foreach(pObj, list)                // loop over all elements
  PrintObject(pObj);

pObj = LL_shift(list);                // shift off the first element
DeleteObject(pObj);                   // ...and delete it

LL_destroy(list, DeleteObject);       // destroy the whole list