move all #include s below include guards
add extern "C" declaration