Try to make library functions reentrant. If they need to do dynamic
storage allocation, at least try to avoid any nonreentrancy aside from
Here are certain name conventions for libraries, to avoid name conflicts.
Choose a name prefix for the library, more than two characters long. All external function and variable names should start with this prefix. In addition, there should only be one of these in any given library member. This usually means putting each one in a separate source file.
An exception can be made when two external symbols are always used together, so that no reasonable program could use one without the other; then they can both go in the same file.
External symbols that are not documented entry points for the user should have names beginning with ‘_’. The ‘_’ should be followed by the chosen name prefix for the library, to prevent collisions with other libraries. These can go in the same files with user entry points if you like.
Static functions and variables can be used as you like and need not fit any naming convention.