The output conversion specifiers are:

For long integers you may use a letter l thus: ld, lo, lx as appropriate.
For doubles, you may use lf or le as appropriate, though l or e suffice.
In each case you will need an item of the corresponding type in the list of things to be printed.
ANSI C also introduced %p to print out a pointer. What actually appears is system-dependent but will usually be more meaningful that using %d (where very large addresses will appear as negative integers because of two's complement)
maspjw@