HaWe, das Du nur C++ in der Arduino IDE benutzen kannst ist nur bedingt richtig.
Der Sketch wird durch den eigenen Präprozessor gejagt und dann das CPP-File durch den (kastrierten) g++.
Wenn Du aber eine "*.c"-Datei dem Projekt hinzufügst, dann wird diese mit dem GCC und nicht dem g++ kompiliert. Bei *.cc *.cpp vice versa.
Dementsprechend müssen dann die Header "extern "C" { ... }" oder auch nicht enthalten, sonst produziert der Linker freudig Fehlermeldungen.

Gruß