0

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.

1
  • What do you mean by "add it to library to use"? Commented Aug 12, 2010 at 16:56

2 Answers 2

2

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.

Sign up to request clarification or add additional context in comments.

5 Comments

No include guards? I suggest you add them to your example, as it's a best practice. EDIT: Thanks.
It was an exceptionally trivial example off the top of my head. Added them now, though.
"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 To be pedantic, no it doesn't - mycc a.c b.c is two translation units, one compiler invocation.
@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'.
2

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

This could get messy, depending on the include paths and where the header is stored. Such is C.
Luckily, it's C. It could be worse.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.