What LynuxPenguin was refering to was the fact that on Linux systems in the /usr/include directory, the gcc compiler includes all the standard header files into the program by default so if you miss a header file or find an undeclared function gcc checks the directory for the header file you wished to include, otherwise you need to include it directly or tell gcc where it is ex:
gcc -lcrypt myencryption.c
or
#include <crypt.h>
should work, although im not sure, but I read this somewhere, let me know ok?