Can I use the C18 library for a PIC16?
No.  Read a PIC 16 and PIC 18 datasheet and you will set the instruction sets are different.  For one thing, PIC 16 instructions are 14 bits wide and PIC 18 instructions 16 bits wide.  Obviously binary code for one machine won't run on the other.