C/C++両方で使うヘッダファイルを書いています。

#ifdef __cplusplus
#include <cstdio>
#else
#include <stdio.h>
#endif

#ifdef __cplusplus
extern "C" {
using namespace std;
#endif

int OutputString(FILE* fp, const char* s, size_t n);

#ifdef __cplusplus
}
#endif

みたいに書いたら、using namespace std;をヘッダに書くな!と怒られました。
私は、usingの有効範囲は{ }の中だけだと思ったんですが違うんでしょうか?
できれば、

#ifdef __cplusplus
int OutputString(std::FILE* fp, const char* s, std::size_t n);
#else
int OutputString(FILE* fp, const char* s, size_t n);
#endif

みたいな書き方はしたくないんですが。