名前がおかしい。
extern int checkStatus(void);
static int status; int checkStatus() { status = !status; return status == 0; }
間違っている点は
- 宣言と定義の返り値が違う。enum型の大きさがintとは限らない。
- 宣言と定義の仮引数リストが違う。
- check〜という名前にも関わらず値を更新している。値を更新するならupdate〜など、変更することを明示した名前にするべき。
- 値を更新するなら検査値を返すべきではない。Query/Commandの分離が必要。
- 通例、int型の検査値を用いる場合はエラーコード、つまり正常時に0、を返す。
などなど。