Старайтесь делать библиотечные функции повторновходимыми. Если они нуждаются в отведении динамической памяти, то старайтесь, по крайней мере, не делать их неповторновходимыми вне собственно вызова malloc.
Следуйте некоторым соглашениям по именованию для библиотек, чтобы избежать конфликта имен.
Выберите префикс для имен в библиотеке, длина которого более чем два символа. Все внешние функции и имена переменных должны начинаться с этого префикса. Кроме того, в каждом члене библиотеки должно быть определено хотя бы один символ, начинающийся с этого префикса. Обычно стараются помещать определение одного символа в один исходный файл.
Исключение может быть сделано для двух внешних символов, которые всегда используются совместно, и не может быть разумной программы, которая использует один из символов без другого. В этом случае оба они могут быть определены в одном и том же файле.
Имена внешних символов, которые не документированы для пользователя, должны начинаться с литеры '_' и так же содержать выбранный для библиотеки префикс, чтобы избежать коллизий с другими библиотеками. Если Вы хотите, они могут определяться в одном файле с известными для пользователя точками входа.
static-функции и переменные могут быть использованы так, как Вы пожелаете, и для них не надо следовать каким-либо соглашениям по именованию.