A static library is a collection of precompiled routines that are linked into a program at compile time and become part of the executable file. Unlike dynamic libraries (also known as shared libraries), static libraries are not loaded at runtime. Instead, the code from the static library is copied directly into the executable. This results in a larger executable size but eliminates the dependency on the library being present on the system where the executable is run. Static libraries are commonly used to distribute reusable code components, such as mathematical functions, data structures, or device drivers. They are particularly useful when you want to ensure that your program has all the necessary code built-in and doesn't rely on external dependencies that might be missing or incompatible on different systems. The file extension '.a' is the most common extension for static libraries on Unix-like systems, including Linux and macOS. On Windows, static libraries typically use the '.lib' extension.