初心者な質問で申し訳ありません。

Cで自作関数を作成した場合、
戻り値で何を返すか迷ってしまいます。

戻り値の型をint型とした場合、
エラー時は-1を返すべきなのか0を返すべきなのか

また、戻り値の型をchar *等ポインタ型にした場合、
エラー時は空のポインタを返せばよいのか

上記以外にもありますが、
皆さんのアドバイス、ご意見をお願いします。