I want to create a header file in C and add it to a library. How do I create the header file and add/access it to/from the library.
2 Answers
Some header:
//header.h
#ifndef HEADER_H
#define HEADER_H
int ThisReturnsOne() {
return 1;
}
#endif //HEADER_H
Some c file:
//file.c
#include "header.h"
int main() {
int x;
x = ThisReturnsOne(); //x == 1
}
So the contents of "header.h" are available to "file.c". This assumes they are in the same directory.
Edit: Added include guards. This prevents the header file from being included in the same translation unit twice.
5 Comments
strager
No include guards? I suggest you add them to your example, as it's a best practice. EDIT: Thanks.
eldarerathis
It was an exceptionally trivial example off the top of my head. Added them now, though.
strager
"Edit: Added include guards. This prevents the header file from being included in the same project twice." Correction: "in the same translation unit twice". This basically means "in the same compiler invocation".
strager
@Neil Butterworth, Yes, I know that. I used 'basically' to mean 'this is probably how you think of it when compiling, but it's a simplified view which is technically incorrect'.
Create a file with the extension .h, for example mystuff.h. Put the desired header contents in there, and include it in your sources via #include "mystuff.h".
2 Comments
strager
This could get messy, depending on the include paths and where the header is stored. Such is C.
Matt Joiner
Luckily, it's C. It could be worse.