C++でDLL作成に挑戦しています

公開するAPI関数の定義(XXX.h)を extern "C" {} ブロックで囲っているのですが、
関数の本体(XXX.cpp)も同じように extern "C" {} ブロックで囲う必要があるのか分かりません
もちろんインターネットで検索をかけていますが、今のところ有用な情報がないです

両方とも囲う必要があるのか教えてください