# PRIVATE and PUBLIC Macros

All functions and global data are prepended with either `PUBLIC` or `PRIVATE`. These macros are defined in HTUtils.html. In practice PUBLIC is defined to nothing and PRIVATE is `static`. These tags are also useful for scripts that search the code for functions (e.g. makedefs).

## PRIVATE

It is used in a function or variable declaration to signify that the function is private to the module, rather than public (the default). Avoids the confusion in C between "`static`" used in this sense, and used to declare storage variables within blocks as static as opposed to automatic.

## PUBLIC

It is used to signify that a function is part of the public interface. As this macro is used in windows to generate DLLs it is very important that you use it! It also is a good idea to use simply because it ensures that the programmer has thought about it. This prevents unnecessary accidental public definitions which may later clash with other people's routines.