Found a 64bit double implementation library, but I cannot compile it

why is not the same for variable?

Because C and C++ treat variables the same.

why not all header should be putted as extern "C"?

Because 99% of header files are used with just one language.