Difference between Header file and Library
Header Files:
The
files that tell the compiler how to call some functionality (without knowing
how the functionality actually works) are called header files. They contain the
function prototypes. They also contain Data types and constants used with the
libraries. We use #include to use these header files in programs. These files
end with .h extension.
Library:
Library is the place where the actual
functionality is implemented i.e. they contain function body.
Libraries have mainly two
categories:
• Static
• Shared or Dynamic
Static:
Static libraries contain object code linked
with an end user application and then they become the part of the executable.
These libraries are specifically used at compile time which means the library
should be present in correct location when user wants to compile his/her C or
C++ program. In windows they end with .lib extension and with .a for MacOS.
Shared or
Dynamic:
These libraries are only required at run-time
i.e, user can compile his/her code without using these libraries. In short
these libraries are linked against at compile time to resolve undefined
references and then it’s distributed to the application so that application can
load it at run time. For example, when we open our game folders we can find
many .dll(dynamic link libraries) files. As these libraries can be shared by
multiple programs, they are also called as shared libraries. These files end
with .dll or .lib extensions. In windows they end with .dll extension.
HEADER
FILES
|
LIBRARY
FILES
|
They have the extension .h
|
They have the extension .lib
|
They contain function declaration.
|
They contain function definations
|
They are available inside “include sub directory” which
itself is in Turbo compiler.
|
They are available inside “lib sub directory” which itself
is in Turbo compiler.
|
Header files are human readable.Since they are in the form
of source code.
|
Library files are non human readable.Since they are in the
form of machine code.
|
Header files in our program are included by using a
command #include which is internally handle by pre-processor.
|
Library files in our program are included in last stage by
special software called as linker.
|
Comments
Post a Comment